的“grep | xargs的grep的”对不同的字符串搜索条件(“grep | xargs g

2019-09-17 23:35发布

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

wp_123

wp3_123

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

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

如何使它与不同的字符串搜索条件的工作吗?

PS对不起,那种重复的,但似乎没有人注意到我的评论最后一小时内...

Answer 1:

这应该工作

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

单引号内是没有必要在这种情况下,但有一个好习惯,以防止被shell解释模式字符。 在原来的尝试,-vl意味着“打印所有文件至少有一条线不匹配”。 在这里,-L表示“打印与相匹配的任何行的每个文件”。



文章来源: “grep | xargs grep” with search conditions on different strings
标签: unix search grep