awkのOFS変数の設定で、出力の区切り文字を設定することができます。
下記に書き方を紹介します。

スポンサーリンク

awkのOFS変数の使い方

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

awkの出力の区切り文字を統一するのであれば、下記のようにBEGINブロックで、OFS変数を設定するのが良いと思います。

	BEGIN{
		OFS = 区切り文字
	}

出力の区切り文字をスペースにする場合

awkの出力区切り文字をスペースにする場合は、OFS = " " を設定します。

例えば、下記のようにin.txtがあったとします。

 $ cat in.txt 
2018 44
2019 76
2019 98

下記がサンプルコードになります。
カンマ区切りで、$1と$2をprint出力しています。
 $ cat sample01.awk 
#!/bin/sh
cat in.txt | awk '		
	BEGIN{
		OFS = " "
	}
	{
		print $1 , $2
	}
'

実行すると、下記のようにスペース区切りで出力されているのが確認できます。
 $ ./sample01.awk 
2018 44
2019 76
2019 98

スポンサーリンク

出力の区切り文字をカンマにする場合

awkの出力区切り文字をカンマにする場合は、ofs = "," を設定します。

 $ cat sample02.awk 
#!/bin/sh
cat in.txt | awk '		
	BEGIN{
		OFS = ","
	}
	{
		print $1 , $2
	}
'

実行すると、下記のようにカンマ区切りで出力されているのが確認できます。
 $ ./sample02.awk 
2018,44
2019,76
2019,98

出力の区切り文字をタブにする場合

awkの出力区切り文字をタブにする場合は、OFS = "\t" を設定します。

 $ cat sample03.awk 
#!/bin/sh
cat in.txt | awk '		
	BEGIN{
		OFS = "\t"
	}
	{
		print $1 , $2
	}
'

実行すると、下記のようにタブ区切りで出力されているのが確認できます。
 $ ./sample03.awk 
2018	44
2019	76
2019	98

スポンサーリンク