我想grep包含文本的文件" wp _"但不包含文字" wp3 _"。例如。我有一个包含两个字符串的文件:
wp_123
wp3_123
我尝试$ grep -lr wp_ ~/tmp | xargs grep -vl wp3_
输出此文件名!但是,如果我删除了换行符,它就像我想要的那样工作,即处理字符串" wp_123 wp3_123"正确。
如何使其适用于不同字符串的搜索条件?
P.S。很抱歉有些重复,但似乎在过去一小时内没有人注意到my comment ...
答案 0 :(得分:1)
这应该有效
$ grep -lr 'wp_' ~/tmp | xargs grep -L 'wp3_'
在这种情况下,单引号不是必需的,但是防止shell解释模式字符是一个好习惯。在您的原始尝试中,-vl表示“使用至少一行不匹配的行打印每个文件”。这里,-L表示“打印每个文件没有匹配的行”。