デーモン化したプログラムのログを syslog に吐かせていて、そのログのみを抽出したいと考えた。だが、grep(1) もない、awk(1) もない。テキスト系のプログラムで役に立ちそうだったのは cat(1) と sed(1) だけであった ....
サーバやPC上のUNIXで作業をするときは上記のような環境は考えられないわけだが、組み込み環境ではフットプリント(ストレージの消費量)を抑えるためにそういうことが往々にしてある。要するに、sed を grep の代わりとして使いたいわけです ... と思ったとき5分くらい手間取ったのでメモしておく。
----
たとえば、search.txt から regex にマッチする行だけを出力したい場合は、以下のようにする。これは /regex/ という条件文を ! で否定し、d で「マッチしないものを削除する」ことにより、逆にマッチするものを出力するという変なことをしている。
cat search.txt | sed -e '/regex/!d'
正直、こんなことをするのは組み込み環境以外ないし、どうでもいいっちゃいいんだけどね(藁
2 件のコメント:
sed -e '/regex/!d' < search.txt
じゃないん?
おーそれならcatも省略でける!ヽ(´ー`。)ノ
コメントを投稿