スポンサーリンク

awkのprintfで改行("\n")を付与する

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

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

スポンサーリンク