[[Linuxコマンド]] *説明 [#c5dfe725] テキストの加工やパターン処理をさせる際に利用可能なとても便利なコマンドです。~ ※正確にはコマンドではないそうですが、、 *前から◯カラム目を抽出 [#cc45e16c] # 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 *後ろから◯カラム目を抽出 [#pf09546d] 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的な使い方) [#m9f26016] ** 行全体 [#f3c8f9cd] $ cat access_log | awk '/wp-login/' **フィールド [#p4c17e04] $ cat access_log | awk '$5 ~ /29/Jun/2016:04:04/' *特定フィールドに特定の値がある場合のみ抽出 [#ycdc6cb9] $ cat access_log | awk '$9==200' *特定フィールドに特定の値がある数の合計を出力 [#p98a96ae] $ cat access_log | awk '$9==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