説明†テキストの加工やパターン処理をさせる際に利用可能なとても便利なコマンドです。 前から◯カラム目を抽出†# cat tmp.txt test0 hoge kon0 test1 hoge1 kon1 test2 hoge2 kon2 test3 hoge3 kono3 # cat tmp.txt | awk '(print $3)' kon0 kon1 kon2 kono3 後ろから◯カラム目を抽出†awk '{print $(NF -0)}' 例: # ls -l 合計 2 -rw-r--r-- 1 root root 1593 12月 6 12:37 2013 LOG.txt -rw-r--r-- 1 root root 1616 12月 6 12:46 2013 LOG2.txt # ls -l | awk '{print $(NF -0)}' LOG.txt LOG2.txt スクリプトとかで便利かと思うコマンドです。 数字の所を変更することで◯カラム目を指定可能です。※例では0を指定して1カラム目。 全体から該当する文字列の行だけ抽出(grep的な使い方)†行全体†$ cat access_log | awk '/wp-login/' フィールド†$ cat access_log | awk '$5 ~ /29/Jun/2016:04:04/' 特定フィールドに特定の値がある場合のみ抽出†同じ値†$ cat access_log | awk '$9==200' 以下以上†$ cat access_log | awk '$5>=20' $ cat access_log | awk '$5<=20' 特定フィールドに特定の値がある数の合計を出力†$ cat access_log | awk '$5==200' | wc -l 3052 ↓ $ cat access_log | awk '{if($9==200) ok++};END{print ok}' 3052 ↓ 200と200以外の値 $ cat access_log | awk '{if($9==200) ok++;else ng++};END{print ok;print ng}' 3052 196 |