awkの-Fオプションは王道の基本オプションだと思います。
用途によって区切り文字を指定して、特定の列を抽出していくと思うのですが、そのサンプルコードをご紹介したいと思います。

スポンサーリンク

–Fオプションで区切り文字を”スペース”に指定する方法

awkのデフォルトの区切り文字はスペースなので、-Fオプションを指定する必要はありません。
例えば、下記のようにスペース区切りでファイルがあった場合

下記のように-Fオプションをつけなくても、スペース区切りで分割されます。

実行すると、下記のように3列目がprint出力されています。

もちろん明示的にスペース区切りであることを残して、-Fオプションで指定するのもOKだと思います。
下記のように、-Fオプションでスペースを指定します。実行結果は先述の結果と同じになっているのが確認できます。

スポンサーリンク

–Fオプションで区切り文字を”タブ(tab)”に指定する方法

タブ区切りにするには、-F “\t” を指定します。
例えば、下記のようにタブ区切りのファイルがあったとします。

ワンライナーで、awkコマンドに-F “\t”でタブ区切りを指定して、2列目をprint出力しています。

–Fオプションで区切り文字を”カンマ”に指定する方法-“csvファイル”を入力にする場合-

csvファイルなどカンマ区切りとなっている場合も、同じようにawkコマンドの-Fオプションでカンマを指定します。
下記のようにカンマ区切りのファイルがあった場合、

下記のように-Fオプションでカンマを指定します。
2列目がprint出力されているのが確認できます。

–Fオプションで区切り文字を”#”に指定する方法

#区切りの場合もサンプルコードをご紹介します。
下記のように#区切りのファイルがあったとします。

下記のように、-Fオプションで#を指定します。
今度は1列目をprint出力しています。

–Fオプションで区切り文字を”複数”指定する方法

awkで区切り文字が複数あった場合には、-F “[区切り文字]”と指定して、
[]で囲まれた区切り文字の部分に、区切り文字を羅列します。

例えば、カンマと#を区切り文字として下記のようなファイルがあったとします。

カンマと#の両方でファイルの列を分割するには、下記のように書きます。

実行すると、3列目が抽出されてprint出力されているのが確認できます。

スポンサーリンク