スポンサーリンク

awkはprint文に、リダイレクト">"を設定して、ファイルに出力することができる。

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

ワンライナーで簡単な例を示すと、、、

 $ awk 'BEGIN{print "sample" > "out.txt"}'
 $ cat out.txt 
sample

単順に、sampleという文字列を、out.txtにファイル出力しています。

リダイレクトの後ろに、ダブルコーテーション"で囲んで出力ファイル名out.txtを書いています。

データ解析などの中間ファイルとして、ファイルに出力しながらシステムを組んでいくと、
わかりやすくメンテナンス性の高いアーキテクチャが出来上がると思います。

自分は、デバッグ性を上げるためにもよく行います。

スポンサーリンク

print文毎に出力ファイルを設定して、複数ファイルに出力する

print文毎に異なる出力ファイルを設定すれば、用途に応じて異なったファイルにそれぞれ出力できます。

下記にサンプルを書きました。
in.txtを1行毎に処理し、out1.txtとout2.txtにそれぞれ異なるフォーマットで日付を出力しています。

  $ cat in.txt 
2017 1 1
2017 1 2

 $ cat sample.awk 
#!/bin/sh
cat in.txt | awk '		
	{
		year = $1
		month = $2
		day = $3
		
		print year "年" month "月" day "日" >"out1.txt"
		print year "/" month "/" day  >"out2.txt"
	}
'

 $ ./sample.awk 

 $ cat out1.txt 
2017年1月1日
2017年1月2日

 $ cat out2.txt 
2017/1/1
2017/1/2

スポンサーリンク