Red Hat Logo

Red Hat Linuxではgrepコマンドで段落検索ができない!?

あれ!?grep -pって使えないの!??

仕事でIBM社のAIXを主に使っていましたが、Redhatを使用するようになりgrepコマンドのオプションが異なり戸惑ったことがあったので覚書。

そもそも grep コマンドって

UNIXおよびUNIX系OSで正規表現に一致する行を検索し出力するコマンド。
edコマンドの「global regular expression print」のg/re/pが由来のようです。

やりたかったこと

下のような空行で区切られてテキストファイルから指定した文字を含む段落を出力

例えば、07を検索すると06から10までの5行が表示されるイメージ。
では、IBM社のAIXではどうだろうか

IBM AIX

このように段落検索ができます。便利ですね〜

Red Hat Enterprise Linux

GNU grep 2.6.3には-pオプションがなく、段落検索ができないみたいです。
段落検索って意外と使用頻度が高いのかな思います。ログ解析とかにも便利です。
代替方法としては以下のようにawkコマンドを使用する方法しか無いんですかね?
コマンド:awk ‘{FS=”\n” ; RS=””} /検索キーワード/ {print}’ ファイル

こうすると何とか出来ました。
Red Hatのソースコードから派生しているCent OSもやはり段落検索ができなく、また、BSD UNIXベースにApple社が開発したMac OSも同様にできませんでした。(検索はできましたが。)
意外にもAIXのgrepコマンドがマイナー派なんですね。でそれ慣れてた自分がいけないのか。。。

参考までに

Cent OS

Mac OS




Share on Facebook

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

sponsored link