LinuxServer シェルとコマンド操作について テキストファイル処理 その2

この記事は2012年11月13日に書かれたものです。内容が古い可能性がありますのでご注意ください。


LinuxServer シェルとコマンド操作について キストファイル処理 その2(

前回はテキストデータを表示するための様々なコマンドを紹介しましたが、
今回は、テキストデータを編集したり、整形を行えるコマンド紹介します。

cutコマンド

cutコマンドはテキストファイルの各行から指定したフィールドを取りだします。
‘-cオプション’で取り出す文字位置を指定することが可能で、文字位置は一番左の文字を「1」とします。
また、「-」を使用して取り出す文字位置の範囲を指定することもできます。

‘-dオプション’では区切り文字(デリミタ)で区切られたテキストから任意のフィールドを取り出せます。
‘-dオプション’で区切り文字を指定し、’-fオプションで取り出したいフィールドを指定します。
フィールドは一番左のフィールドを「1」とします。

[コマンド書式]
cut -オプション ファイル名

[コマンド実行例]/etc/servicesの左から7文字目を表示
$ cut -c 7 /etc/services | tail
b
e
e

r
r
c
c
r

[コマンド実行例]/etc/servicesの左から1-7文字目を表示
$ cut -c 1-7 /etc/services | tail
3gpp-cb
isnetse
isnetse
blp5
blp5
com-bar
com-bar
iqobjec
iqobjec
matahar

[コマンド実行例]/etc/servicesのスペースを区切り文字として1フィールド目を表示
$ cut -d’ ‘ -f 1 /etc/services | tail
3gpp-cbsp
isnetserv
isnetserv
blp5
blp5
com-bardac-dw
com-bardac-dw
iqobject
iqobject
matahari

joinコマンド

joinコマンドは二つのファイルを読み、フィールドが共通な行を結合します。
オプション無しの場合、1つ目のフィールドを使って連結します。
正しく出力されるには結合に使用するフィールドが昇順にソートされている
必要があります。

[コマンド書式]
join -オプション ファイル1 ファイル2

主なオプションは次のとおりです

オプション 説明
-j フィールド番号 結合対象となるフィールド番号を指定します
-1 フィールド番号 ファイル1の結合対象となるフィールド番号を指定します
-2 フィールド番号 ファイル2の結合対象となるフィールド番号を指定します

[コマンド実行例]ファイルjoin01.txtとjoin02.txtを先頭フィールドで結合
$ cat join01.txt
01 aaa level1
02 bbb level2

$ cat join02.txt
01 AAA group1
02 BBB group2

$ join join01.txt join02.txt
01 aaa level1 AAA group1
02 bbb level2 BBB group2

[コマンド実行例]ファイルjoin01.txtの先頭フィールドとjoin03.txtの2番目のフィールドで結合

$ cat join03.txt
AAA 01 group1
BBB 02 group2

$ join -1 1 -2 2 join01.txt join03.txt
01 aaa level1 AAA group1
02 bbb level2 BBB group2

ページ:

1

2 3
  • このエントリーをはてなブックマークに追加

PAGE TOP