スポンサーリンク
awkはprint文に、リダイレクト">"を設定して、ファイルに出力することができる。
※awkの使い方をまとめて一覧にしました。
参考: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
スポンサーリンク