time awk -F" " '/正規表現/ {print $1,$5}' ${ファイル}
real 0m13.641s
user 0m13.528s
sys 0m0.127s
time awk -F" " '{print $1,$5}' ${ファイル} | grep '正規表現'
real 0m2.331s
user 0m3.505s
sys 0m0.208s
んーーー。
処理速度がぜんぜん違う。
前者のほうが、個人的には良いんだけど、この速度差を考えると、
後者だなぁ。
何でだろう。。。
って思ってたけど、
time awk -F" " 'match($5,/正規表現/) {print $1}' ${ファイル}
real 0m2.101s
user 0m1.971s
sys 0m0.136s
おおーー速くなった。
awkの組み込み関数のmatchを使えば、指定したフィールドに対して正規表現をかけて、取得したいカラムをprintできる。
こりゃ良い。
たぶん、一番初めに書いたやり方は、一行全てを正規表現に引っ掛けてるんだろう。
real 0m13.641s
user 0m13.528s
sys 0m0.127s
time awk -F" " '{print $1,$5}' ${ファイル} | grep '正規表現'
real 0m2.331s
user 0m3.505s
sys 0m0.208s
んーーー。
処理速度がぜんぜん違う。
前者のほうが、個人的には良いんだけど、この速度差を考えると、
後者だなぁ。
何でだろう。。。
って思ってたけど、
time awk -F" " 'match($5,/正規表現/) {print $1}' ${ファイル}
real 0m2.101s
user 0m1.971s
sys 0m0.136s
おおーー速くなった。
awkの組み込み関数のmatchを使えば、指定したフィールドに対して正規表現をかけて、取得したいカラムをprintできる。
こりゃ良い。
たぶん、一番初めに書いたやり方は、一行全てを正規表現に引っ掛けてるんだろう。
※コメント投稿者のブログIDはブログ作成者のみに通知されます