Linuxコマンド | ファイル管理 | awk パターン検索処理
awkコマンド
awkは、パターン検索と処理のためのコマンドです。ファイルから結果を簡単に抽出し、加工して目的の出力を作成できます。
awkという名前は、初期開発者であるAho、Weinberger、Kernighanの3人の姓の頭文字に由来します。GNUプロジェクトで作られたテキスト処理プログラミング言語で、Unix系OSで利用でき、テキスト形式の入力データを行と単語ごとに処理して出力します。
構文
awk 'pattern' filename
awk '{action}' filename
awk 'pattern' '{action}' filename
awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ]
awkコマンドの使用例
例1: コマンド出力のうち必要なフィールドだけを表示
date
2018년 6월 24일 일요일 17시 16분 54초 KST
date | awk '{print $1}'
2018년
日付を表示するdateから、年だけを抽出して表示します。
例2: ファイル内容を抽出して必要なフィールドだけを表示
cat sample.txt
foo 한글 12
dev 데브 24
kuma 쿠마 33
hello 헬로 55
kumaを含む行を抽出して表示
awk '/kuma/' sample.txt
kuma 쿠마 33
空白を基準に2番目と1番目のフィールドだけを表示
awk '{print $2, $1}' sample.txt
한글 foo
데브 dev
쿠마 kuma
헬로 hello
kumaを含む行を抽出し、空白を基準に2番目と1番目のフィールドだけを表示
awk '/kuma/{print $2, $1}' sample.txt
쿠마 kuma
例3: フィールド区切り文字を使った表示
空白を区切り文字としてフィールドを分け、9番目のフィールドを表示します。
ls -al
total 59384
drwxr-xr-x 28 kimkc staff 952 6 22 22:29 .
drwxr-xr-x+ 80 kimkc staff 2720 6 24 16:57 ..
drwxr-xr-x 21 kimkc staff 714 6 24 16:57 devkuma
drwxr-xr-x 18 kimkc staff 612 1 2 23:12 tutorial
drwxr-xr-x 13 kimkc staff 442 6 16 07:56 workspace
ls -al | awk -F " " '{print $9}'
.
..
devkuma
tutorial
workspace