例えば、START という行から STOP という行までを抽出したいとき。 awk を使う場合 シェルでこの手の作業をしようと思ったら、まず思いつくのが awk です。 実は簡単な記述法が用意されています。
例えば、START という行から STOP という行までを抽出したいとき。 awk を使う場合 シェルでこの手の作業をしようと思ったら、まず思いつくのが awk です。 実は簡単な記述法が用意されています。
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を使えば、指定したフィールドに対して正規
AWK リファレンス AWK とは? AWK はフィルタリングによく使用されるコマンドであるが、同様にしてフィルタリングに使用される grep や cut と決定的に違うところは、AWK 自体が独立した一つのスクリプト言語であるということだ。つまり、AWK は正確にはコマンドではなく、AWK スクリプト・インタプリタである。 例えばテキストから 1 フィールド目を抽出する場合には、awk '{ print $1 }' と実行するが、ここで引数として AWK に渡している { print $1 } の部分が AWK スクリプトのソースになっている。 ちなみにこの { print $1 } は「全ての行に関して 1 フィールド目を標準出力に出力せよ」という意味になる。 この AWK は Perl などといった他のスクリプト言語ほど高機能ではないが、単一のテキストファイルや標準入力からのテキスト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く