awkのOFS変数の設定で、出力の区切り文字を設定することができます。
下記に書き方を紹介します。
awkのOFS変数の使い方
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
