`こいつらはSQLステートメントの改行を反映するし、インデントもしっかり記録してくれる'こと。
grep -v "INSERT INTO t1"とかやっても、"VALUES"の手前で改行してインデントするような
小綺麗に書かれたコードだと上手く引っ掛けにくい。
個人的にはインデントあった方が好きだけど、大量のログを見る時には不向き。
なので1分で考えたワンライナー。
perl -e '$/="#"; while(<>) { s/[ \n\r\t]{2,}/ /g; print $_;}' | egrep -iv '^SET (TIMESTAMP|.+session\.|INSERT_ID)|^/\*|^BEGIN|^COMMIT|^DELIMITER' | grep '^[^#]' -B1
これで連続する改行なり空白なりを全部まとめて単独のスペース文字に変換できる。
grepでもawkでも自由自在。
ついでに、いつものSET TIMESTAMPやBEGIN, COMMITを弾いた上で、
コメント行以外の行とその直前のコメント行を引っこ抜いてくる。
スローログだったら-B2にすると良いかと。
…小汚いですが、1分で思い付いたのはこれくらいでした。
0 件のコメント :
コメントを投稿