Linuxコマンド - awk
提供: MochiuWiki : SUSE, EC, PCB
概要
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