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
