0

该命令grep -vf 1.txt 2.txt > 3.txt放入了3.txt没有2.txt的内容1.txt,但是我如何才能使用grepto 仅比较具有 (0-9) 的字符串?

Example:

(0001) compare  
test   ignore  
984    ignore  
(10)   compare  
(1242342542) compare  
4

3 回答 3

1

如果您希望只保留与模式匹配的结果,您可以简单地对输出进行后处理:

grep -vf 1.txt 2.txt | grep '([0-9]\+)' > 3.txt

或者,如果您希望仅使用1.txt与模式匹配的行进行比较,您可以尝试:

grep -vf <(grep "([0-9]\+)" 1.txt) 2.txt > 3.txt
于 2012-11-19T14:02:48.110 回答
0

简单的方法是:

在保存到 3.txt 之前,将结果通过管道传输到grep -E '[0-9]+' > 3.txt

好像: grep -vf.... |grep -E '[0-9]+' > 3.txt

如果您给出 1.txt 、 2.txt 和预期的 3.txt 的一些示例,可能会有一种有效的方法。

于 2012-11-19T14:07:24.780 回答
0

这也应该有效:

awk 'FNR==NR {arr[$0];next} !($1 in arr)' 1.txt 2.txt

问候

于 2012-11-19T14:35:51.580 回答