たまにしか使わなくてよく忘れるのでメモ。
実際にはこんなシチュエーションだった。
postfixのメールログからステータスの統計とろうとしていた。
しかし、postfixのログフォーマット的に、status=xxx
の現れる位置が
スペース区切りで考えてもカンマ区切りで考えても一定にならないので
cut
や awk
では切り出せなくて1
$ grep -E -o ”status=\S+” /var/log/maillog | sort | uniq -c
1386 status=bounced
40125 status=deferred
167 status=expired,
7197 status=sent
めっちゃエラー出てた
(このエラーはその後無事に解消した)
-
awk
にあまり詳しくないので何かやり方あるのかもしれないが当時は思いつかなかった。
なんか方法ないかな・・・と調べていて
grep
の-o
オプションでできることに気づいた。 ↩