Unixコマンド/awk

awk

機能

awkコマンドは、読み込んだテキストデータ中に指定されたパターンがないか照合し、
一致するパターンが見つかった場合、指定された処理を行います。

awkコマンドは、非常に強力なパターン照合と処理機能を持っています。
照合するパターンと処理はあらかじめファイルに記述しておき、コマンドラインでawkプログラムを
指定する代わりに、そのファイルを指定して処理を実行できます。

構文

awk [オプション] [プログラム] [ファイル名]

オプション

-f ファイル名         パターンを記述したawkプログラムを指定したファイルから読み込んで実行する
-F 文字               フィールドの区切り文字を文字にする(デフォルトは空白)

コマンド例

▼コマンドの実行結果から、指定パターンに合致する文字列を検索

$ netstat -i
Name    Mtu Network       Address              Ipkts Ierrs    Opkts Oerrs  Coll
rl0    1500 <Link#1>    00:90:99:7d:f7:6e  5049019     0  3423963     0     0
rl0    1500 192.168.1     vaio              339713     -   455869     -     -
rl0    1500 fe80:1::290 fe80:1::290:99ff:        0     -        2     -     -
rl1    1500 <Link#2>    00:90:99:7e:07:63  3175273     0  4915047     0     0
rl1    1500 fe80:2::290 fe80:2::290:99ff:        0     -        1     -     -
lo0   16384 <Link#3>                         15262     0    15262     0     0
lo0   16384 localhost.m ::1                      0     -        0     -     -
lo0   16384 fe80:3::1   fe80:3::1                0     -        0     -     -
lo0   16384 your-net      localhost           1923     -     1923     -     -
ppp0*  1500 <Link#4>                             0     0        0     0     0
faith  1500 <Link#5>                             0     0        0     0     0
tun0   1454 <Link#6>                       3138254     0  4877944     0     0
tun0   1454 FLA1Abj166.kn FLA1Abj166.kng.   108650     -  4877891     -     -
matsui@vaio$ netstat -i |awk '$1="rl0" && $3!="<Link*" {print $9}'
0