スポンサーリンク

BEGINブロックに、OFS変数でタブ区切りを設定しよう

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

デフォルトでは、awkのprint出力はスペース区切りで出力されるようになっています。

OFS="\t"のように、OFS変数でタブ区切りに設定することで、タブ区切りの出力ができるようになります。

下記のようにBEGINブロックで、初期設定してしまうのが良いと思います。
BEGINブロック以降の処理で、設定が適用されることになります。

	BEGIN {
		OFS="\t" #タブ区切りの出力を設定している
	}

スポンサーリンク

print文にはカンマ区切りで変数を羅列

print文を書く時は、下記のように変数もしくは文字列を、カンマ区切りで羅列します。
カンマの部分がタブとなります。

		print year , month , day #カンマ区切りで変数を羅列

サンプルコード

サンプルコードを下記に記載しましたので、参考にしてください。

スペース区切りとなっているin.txtを一行ずつ読み込んで、タブ区切りで出力し直しています。

 $ cat in.txt 
2017 1 1
2017 1 2


 $ cat sample.awk 
#!/bin/sh
cat in.txt | awk '		
	BEGIN {
		OFS="\t" #タブ区切りの出力を設定している
	}
	{
		year = $1
		month = $2
		day = $3
		
		print year , month , day #カンマ区切りで変数を羅列
	}
'


 $ ./sample.awk 
2017	1	1
2017	1	2

スポンサーリンク