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