スポンサーリンク

awkで列を挿入

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

列の操作はawkが便利です。

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

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

 $ cat in.txt 
1991 55
1991 66
1991 77

1列目と2列目の間に、"add"という文字列の列を挿入します。
print出力時に、$1と$2の間に"add"を挿入します。

参考:awkで列を入れ替える方法
ワンライナーで書いています。

$ cat in.txt | awk '{print $1 " " "add" " " $2}'

下記が実行結果になります。
 $ cat in.txt | awk '{print $1 " " "add" " " $2}'
1991 add 55
1991 add 66
1991 add 77

下記のようなcsvファイルの場合には、-Fオプションで","を指定します。

参考:awkでcsvファイルを処理する

 $ cat in.txt 
1991,55
1991,66
1991,77

下記が実行結果になります。
 $ cat in.txt | awk -F"," '{print $1 "," "add" "," $2}'
1991,add,55
1991,add,66
1991,add,77

スポンサーリンク

先頭列と最終列に列を追加

先頭列に列を追加します。
先程と同様に、print出力時に、先頭に文字列を追加します。

 $ cat in.txt | awk '{print "head" " " $1 " " $2}'

下記が実行結果になります。
 $ cat in.txt | awk '{print "head" " " $1 " " $2}'
head 1991 55
head 1991 66
head 1991 77

最終列に列を追加する場合です。
 $ cat in.txt | awk '{print $1 " " $2 " " "tail"}'
1991 55 tail
1991 66 tail
1991 77 tail

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

out.txtは下記のようになります。
 $ cat out.txt 
1991 55 TAIL
1991 66 TAIL
1991 77 TAIL

スポンサーリンク