スポンサーリンク

awkで特定の列を抽出

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

※MACターミナル(BSD系)での動作確認です。
例えば、カンマ区切りのファイルの2列目を抽出する場合です。
参考:awkの-Fオプションで区切り文字を指定する方法

 $ cat in.txt | awk -F"," '{print $2}'

スペース区切りの例は下記の記事で書いています。
参考:awkで$1(1列目)をprint出力する

例えば、下記のin.txtがあったとします。

 $ cat in.txt 
a1,a2,a3
b1,b2,b3
c1,c2,c3
d1,d2,d3
e1,e2,e3

下記が実行結果になります。
 $ cat in.txt | awk -F"," '{print $2}'
a2
b2
c2
d2
e2

スポンサーリンク

列を抽出して文字列を付与

例えば、2列目を抽出して、2列目の前に文字列を付与します。

$ cat in.txt | awk -F"," '{print "3列目は"$3}'

文字列を連結させているだけですね。
参考:awkで文字列を連結させる方法

下記が実行結果になります。

 $ cat in.txt | awk -F"," '{print "3列目は"$3}'
3列目はa3
3列目はb3
3列目はc3
3列目はd3
3列目はe3

3列目の1文字目をsubstr()で抽出して、先頭に文字列を付与しています。
参考:awkでsubstr()を使って文字列を切り出す方法
 $ cat in.txt | awk -F"," '{print "3列目の1文字目は"  substr( $3, 1, 1)}'
3列目の1文字目はa
3列目の1文字目はb
3列目の1文字目はc
3列目の1文字目はd
3列目の1文字目はe

スポンサーリンク