awkで[](カギカッコ)内の値に応じて行を抽出する
Pocket

仕事で、Apacheのログ・ファイルから[](カギカッコ)内に記述されている応答時間で、時間のかかっているログのみを抽出するといった対応があった。
で、とりあえず〇〇秒以上のログだけを抽出するような対応をしたので、その備忘。

対応としては、以下のようにデリミタに[](カギカッコ)を指定して、その中の値が〇〇以上のログだけを抽出するようにした。

awk -F '[][]' '$4 >= 〇〇' ログファイルPATH

20150925_000002

[root@test-centos7 ~]# cat /var/log/httpd/access_log-20150906
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [0]
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [20]
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [0]
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [50]
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [10]
[root@test-centos7 ~]# awk -F '[][]' '$4 >= 20' /var/log/httpd/access_log-20150906
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [20]
::1 - - [02/Aug/2015:15:33:22 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 (internal dummy connection)" [50]

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。