業界未経験者のLPIC LEVEL1 ~フィルタコマンドの巻①~

皆様こんにちは。初めての方ははじめまして。
中途入社おじさんこと関口です。
最近急に気温が上がりましたね。
電車の乗り降りが多い私には、車内外の温度差が激しい現状はいささか辛いものがあります。
皆様もこの辛い気温に負けないよう、体調管理にはお気をつけ下さい。

<前振り>

さて、本文は著者が資格の取得の際に苦労した部分を紹介しております。
その他もろもろ私の記事の前提情報は
「関口」
とブログ内検索をして前の記事を呼んでいただければ幸いです。

<本題>

今回はフィルタコマンドについて一部ご紹介します。
フィルタコマンドとは端的にいうと、テキストを加工するコマンドのことです。
これらを使いこなすと、サーバ内のデータを綺麗にまとめたりできます。
エンジニアの立場で言えば、お客様に見せるデータを見やすい状態にしたり出来るわけです。
数が多いので複数回に分けてご紹介します。
今回は、LPIC101で出てくる中からcut、jion、pasteをご紹介しましょう。

cut

ファイルの各行から指定した文字の位置(何文字目)や
フィールド(下記の例を参照)を取り出すことが出来ます。
例えばとあるテキストファイル「a.txt」の中身が
-例①-「a.txt」
01 23
45 67
89 1
だったとします。
文字位置を2文字目に指定して取り出すと、各行の2文字目だけが出力され
1
5
9
と表示されるわけです。(何文字目から何文字目といった指定もできます。1~3文字目とか)
他にも2番目のフィールドを指定した場合だと、
23
67
10
になります。(2番目のフィールド =スペースで区切られた2番目の文字列が取り出されてます。)

join

2つのファイルから、共通のフィールドを持っている行を連結します。
例えばcutの例に挙げた例①「a.txt」ともう一つ下記の内容の「b.txt」 があるとしましょう。
-例②-「b.txt」
01 abc
45 def
89 ghi
この二つのファイルの1番目のフィールドを指定して、joinを打つと
01 23 abc
45 67 def
89 10 ghi
といった具合にファイルの中身を連結することが出来ます。

paste

今回はこれが最後になります。
joinと少し似てますが、複数のファイルを読み込んで、それぞれの同じ行を連結するコマンドです。
例①「a.txt」と例②「b.txt」、と下記の例③「c.txt」を連結するとします。
-例③-「c.txt」
ABC DEF
GHI JKL
MNO PQR
すると、同じ行同士が横に連結し、以下のようになります。
01 23 01 abc ABC DEF
45 67 45 def GHI JKL
89 10 89 ghi MNO PQR
※「a.txt」「b.txt」「c.txt」の内容が順番に繋がっている。
ちなみに、今回紹介したコマンドは全て区切り文字(デリミタ)を指定することが可能です。
例えば「;」を区切り文字に指定してあげると、上述の結果が、
01 23; 01 abc; ABC DEF
45 67; 45 def; GHI JKL
89 10; 89 ghi;MNO PQR
になります。(※連結する際に区切りが出来ています)
さて、フィルタコマンドのご紹介はいかがでしたでしょうか。
後日またご紹介しますが、これらのコマンドと一緒に
sortやuniq等といったコマンドをあわせることで
重複する部分を1つにまとめたり並び替えたりして、
より見やすいファイルの内容にすることが出来るわけです。
その辺りは次回お話いたします。
次回もこの駄文をお読みいただければ幸いです。
今回はここまでです。
本文を最後までお読みいただき、ありがとうございました。

投稿者プロフィール

sekiguchi
2016年2月入社の中途未経験おじさんです。
NY出張の際、スマートデバイスに目覚めたIT雑兵でもあります。
一通りのデバイスを購入した後に技適マークが無いことに気がついたと言う
悲劇のエピソードはいずれ語られるとか無いとか・・・

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Time limit is exhausted. Please reload CAPTCHA.