awkのデフォルトの区切り文字はスペースですが、タブ(tab)区切りのファイルを読み込むことも多々あるかと思います。
タブ区切りで読み込むには、2種類の設定方法があるのでそれぞれ紹介します。

スポンサーリンク

FS変数にタブ(tab)を設定

区切り文字の設定には、awkで用意されているFS変数に区切り文字を設定することで、読み込むファイルの区切り文字を指定できます。

下記のように書くことで、区切り文字をタブに設定できます。

サンプルコード

それではサンプルコードです。
下記のように、in.txtにはタブ区切りで2列の文字列があるとします。

$ cat in.txt
2016 4
2017 7
2018 9

そして、BEGINブロックでFS変数にタブを設定しています。
in.txtは全てのレコード(行)がタブ区切りなので、最初の実行時に設定して問題ないと思います。

実行すると、下記のように2行が取得でき、print出力できていることが確認できます。

スポンサーリンク

-Fオプションでタブ区切りを設定する

awkをワンライナーで書きたい時などは、-Fオプションで指定するのがコードがスッキリすると思います。

スポンサーリンク

サンプルコード

下記はワンライナーではありませんが、-Fオプションで指定した場合のサンプルコードになります。
タブ区切りのファイルin.txtを読み込んで、1フィールド(列)目と2フィールド(列)目の間に”/”を入れて、print出力しています。

下記が実行結果になります。タブ区切りのファイルを読み込んで、”/”を挟んで2行出力されているのが確認できます。

スポンサーリンク