スポンサーリンク

awkで列を削除

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

前にawkの列の追加に関する記事を書きました。
今回は列を削除する場合です。
※MACターミナル(BSD系)での動作確認です。
参考:awkで列を追加・挿入する方法
参考:awkで列を入れ替える方法

※MACターミナル(BSD系)での動作確認です。

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

 $ cat in.txt 
HEAD1,middle1,TAIL1
HEAD2,middle2,TAIL2
HEAD3,middle3,TAIL3

例えば、2列目を削除する場合には、
print出力時に、$1と$3のみprint出力するだけです($2はprint出力しない)。
 $ cat in.txt | awk -F"," '{print $1 "," $3}'

下記が実行結果になります。
 $ cat in.txt | awk -F"," '{print $1 "," $3}'
HEAD1,TAIL1
HEAD2,TAIL2
HEAD3,TAIL3

ファイル出力する場合には、下記のように書けます。
 $ cat in.txt | awk -F"," '{print $1 "," $3}' >out.txt

下記が実行結果になります。
 $ cat out.txt 
HEAD1,TAIL1
HEAD2,TAIL2
HEAD3,TAIL3

スポンサーリンク

先頭列と最終列に列を削除

先頭列の列を削除します。
先程と同様に、$1以外をprint出力します。

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

下記が実行結果になります。
 $ cat out.txt 
middle1,TAIL1
middle2,TAIL2
middle3,TAIL3

最終列の列を削除する場合です。
print出力時に、最終列の$3以外をprint出力します。
 $ cat in.txt | awk -F"," '{print $1 "," $2}' >out.txt

下記が実行結果になります。
 $ cat out.txt 
HEAD1,middle1
HEAD2,middle2
HEAD3,middle3

スポンサーリンク