Linuxコマンド - awk
ナビゲーションに移動
検索に移動
概要
awk
コマンドとは、入力として受け取った文字列に対して、フィールド区切り文字やレコード区切り文字を指定して、
列に対する処理を行うためのコマンドである。
awkコマンドの基本書式
awk
コマンドの基本書式を以下に記載する。
awk -F'[フィールド区切り文字(複数可能)]' -v '変数=xx' '{awkコマンド}' file
フィールドの出力
標準出力を行うawk
コマンドのprint
を使用して、awk
コマンドで指定したフィールドを取得する。
-F'[フィールド区切り文字]'
オプションを指定しない場合、区切り文字にはタブまたは半角スペースが選択される。
1フィールド目を出力 : print $1
# 実行 echo 1 2 3 4 | awk '{print $1}' # 出力 1
2フィールド目の出力 : print $2
# 実行 echo 1 2 3 4 | awk '{print $2}' # 出力 2
全ての文字列の出力 : print $0 または print
# 実行 echo 1 2 3 4 | awk '{print $0}' # 出力 1 2 3 4
# 実行 echo 1 2 3 4 | awk '{print}' # 出力 1 2 3 4
フィールド区切り文字の指定
フィールド区切り文字として、":"を指定する。
# 実行 echo 1:2:3:4 | awk -F'[:]' '{print $1}' # 出力 1
また、フィールド区切り文字は複数指定できる。
以下の例では、フィールド区切り文字として、":"と"/"を指定している。
並べて記述することで、":"と"/"がフィールド区切り文字として扱われる。
# 実行 echo 1:2/3:4 | awk -F'[:/]' '{print $3}' # 出力 3
複数フィールドの出力は、半角スペースで区切られる。(OFSを指定していないため)
OFSについては、後述のセクションを参照すること。
# 実行 echo 1:2/3:4 | awk -F'[:/]' '{print $1,$2}' # 出力 1 2