1

テキスト「wp_」を含むがテキスト「wp3_」を含まないファイルをgrepしたい。たとえば、2つの文字列を含むファイルがあります。

wp_123

wp3_123

やってみます$ grep -lr wp_ ~/tmp | xargs grep -vl wp3_

このファイル名を出力します!しかし、改行を削除すると、希望どおりに機能します。つまり、文字列「wp_123wp3_123」を正しく処理します。

さまざまな文字列の検索条件で機能させるにはどうすればよいですか?

PS重複して申し訳ありませんが、この1時間は誰も私のコメントに気づかなかったようです...

4

1 に答える 1

1

これはうまくいくはずです

$ grep -lr 'wp_' ~/tmp | xargs grep -L 'wp3_'

この場合、一重引用符は必要ありませんが、パターン文字がシェルによって解釈されないようにするための良い習慣です。最初の試みでは、-vlは「一致しない行が少なくとも1行ある各ファイルを印刷する」ことを意味します。ここで、-Lは、「一致する行がない状態で各ファイルを印刷する」ことを意味します。

于 2012-06-09T11:23:24.410 に答える