ksaitoの日記

日々試したことの覚え書き

rubyのワンライナーで任意のパターンの文字列を抽出する

移転しました。

自動的にリダイレクトします。

ruby正規表現を使って文字列から任意のパターンの行を選択して必要な部分の文字を抽出することができます。
例えば、アクセスログから必要な条件で抽出した文字列のうち、必要な部分を抽出するといったことをワンライナーで表現できます。

$ cat access.log | ruby -n -e 'puts "status="+$2+" path="+$1+" size="+$3 if $_=~/^.*GET (.*) HTTP\/1.1" (404) ([0-9]*) ".*$/'
status=404 path=/favicon.ico size=259
status=404 path=/favicon.ico size=259
status=404 path=/favicon.ico size=259
$