1

我想 grep 包含文本“wp_”但不包含文本“wp3_”的文件。例如,我有一个包含两个字符串的文件:

wp_123

wp3_123

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

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

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

PS抱歉有点重复,但似乎没有人在最后一小时注意到我的评论......

4

1 回答 1

1

这应该工作

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

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

于 2012-06-09T11:23:24.410 回答