指定カラムの抜き出し

テキストファイル等から特定のカラムだけを抜き出したいとき、または文字列等をスプリットしたいときなどは"awk"コマンドが便利である。例えば以下のようなテキストファイルhoge.txtがあるとする。

A	-	1	one
B	-	2	two
C	-	3	three
D	-	4	four
E	-	5	five
F	-	6	six
G	-	7	seven
H	-	8	eight
I	-	9	nine
J	-	1	one

このファイルから数字の書かれているカラムのみを抜き出したいときは以下のようにする。

1|$awk '{print $3}' hoge.txt
1
2
3
4
5
6
7
8
9
1

抜き出せるカラムはひとつだけではない。アルファベットが書かれているカラムと英単語が書かれているカラムを抜き出すには以下のようにする。

1|$awk '{print $1,$4}' hoge.txt
A one
B two
C three
D four
F five
G six
H seven
I eight
J nine
K one

以上では行を空白でスプリットして4本のカラムを作成しているが、スプリットするための区切り文字は自由に変更できる。以上のファイルの2カラム目の"-"を区切り文字として用い、"-"以降の数字および英単語が書かれたカラムを表示させるには以下のようにする。

1|$awk -F- '{print $2}' hoge.txt
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
9 nine
1 one

"grep"と併せて用いると、"oneという単語の入った行の4列目のみを抜き出す"といったようなことができる。

1|$grep one hoge.txt |awk '{print $4}'
one
one
このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る