syslog 処理
AWK を 1 回に減らそうと思えば減らせるんだろうか、とか
awk 単独で処理するとこんな感じでしょうか?
なので、1 回に減らすことはできます。
- gensub() と asort() が gawk 限定ですが、使っているのが Debian っぽいので、'apt-get install gawk' で入りますね。てか、何で Debian って mawk がデフォなんですかね。
- awk の場合、asort() を使おうとすると (そうでなくても)、配列に格納していく必要があるので (ないかもしれないけど)、結果的に sort コマンドの方が良い気がします。
- そういえば、'Jan' と 'Feb' だと 'Feb' が先に来るわけですが、これはこれで不自由かもしれません。
#! /usr/bin/gawk -f { line[NR] = gensub(/\[[0-9]+\]/, "", "1", $5) " " $0; } END { asort(line); for (i = 1; i <= NR; i++) { split(line[i], a_line); if (prev != a_line[1]) { print "\n[" a_line[1] "]"; } prev = a_line[1]; sub(a_line[1], " ", line[i]); print line[i]; } }
「AWK を 256 倍使う本」は個人的には好きなのですが、内容が結構古いです。
例えば、中に連接は sprintf() よりも遅いと書かれていたような気がしますが、今は改善されて連接も高速で動作してくれます。
最新の「AWK を 1024 倍使う」じゃないけれど、OSC2008 でいろいろな新機能を紹介できればと思っています。
- 作者: 志村拓,鷲北賢,西村克信
- 出版社/メーカー: ASCII
- 発売日: 1993/08
- メディア: 単行本
- 購入: 8人 クリック: 39回
- この商品を含むブログ (16件) を見る