19

ネストされたサブディレクトリ内の一連のファイルをgrepして、正規表現の一致を探しています。私の正規表現には、ネガティブな後読みが必要です。

Perlにはネガティブな後読みがありますが、私が知る限り、GNUgrepはネガティブな後読みをサポートしていません

ネガティブルックビハインドをサポートするGNUgrepに相当するものを取得する最も簡単な方法は何ですか?

(Perlで自分のミニgrepを書くことはできると思いますが、それは必要ではないようです。Perlクックブックの私のコピーにはtcgrepのソースが含まれています。それを使用する必要がありますか?もしそうなら、最新のものはどこですか?バージョン?このプログラム全体を入力する必要があると言わないでください!)

4

2 に答える 2

24

ackを使用してください!AckはPerlで記述されているため、Perlの正規表現エンジンを使用します(デフォルト)。

ネガティブな裏返しはack "(?<!bad)boy"(ウィラートのコメントによる)

于 2010-03-22T04:25:39.303 に答える
3

他の質問からのコメントに感謝します。grepこのオプションではネガティブルックビハインドが実験的にサポートされていることがわかりました。その-P/--perl-regexpため、を使い続けたい場合は、別のツールを使用する必要がない場合がありますgrep

ちなみに、私の好みの代替手段grepgrin(Pythonで書かれています)です。

于 2011-12-12T20:19:58.717 に答える