“grep | xargs grep”,搜索条件在不同的字符串上

时间:2012-06-09 11:10:57

标签: unix search grep

我想grep包含文本的文件" wp _"但不包含文字" wp3 _"。例如。我有一个包含两个字符串的文件:

  

wp_123

     

wp3_123

我尝试$ grep -lr wp_ ~/tmp | xargs grep -vl wp3_

输出此文件名!但是,如果我删除了换行符,它就像我想要的那样工作,即处理字符串" wp_123 wp3_123"正确。

如何使其适用于不同字符串的搜索条件?

P.S。很抱歉有些重复,但似乎在过去一小时内没有人注意到my comment ...

1 个答案:

答案 0 :(得分:1)

这应该有效

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

在这种情况下,单引号不是必需的,但是防止shell解释模式字符是一个好习惯。在您的原始尝试中,-vl表示“使用至少一行不匹配的行打印每个文件”。这里,-L表示“打印每个文件没有匹配的行”。