awkのprintfで改行("\n")を付与する
awkのprintfでは改行がつかないので、改行が必要な場合は、"\n"を付与します。
また、デフォルトで改行を付けたい場合には、printを使うのも手ですね。
改行を毎度付けるのが面倒だったりしますね。
例えば、下記のin.txtがあったとします。
$ cat in.txt 1 fff 2 ggg 3 hhh
下記がサンプルコードになります。
$ cat sample.awk #!/bin/sh cat in.txt | awk ' BEGIN{ print "#改行なしの場合" } { printf $2 } ' cat in.txt | awk ' BEGIN{ print "\n#改行ありの場合" } { printf $2 "\n" } ' cat in.txt | awk ' BEGIN{ print "#print関数を使う場合" } { print $2 } '
下記が実行結果になります。
※応用編として、改行を削除する場合に、printfが応用できます。
参考:awkで改行を削除する
$ ./sample.awk #改行なしの場合 fffggghhh #改行ありの場合 fff ggg hhh #print関数を使う場合 fff ggg hhh