该命令grep -vf 1.txt 2.txt > 3.txt
放入了3.txt
没有2.txt
的内容1.txt
,但是我如何才能使用grep
to 仅比较具有 (0-9) 的字符串?
Example:
(0001) compare
test ignore
984 ignore
(10) compare
(1242342542) compare
如果您希望只保留与模式匹配的结果,您可以简单地对输出进行后处理:
grep -vf 1.txt 2.txt | grep '([0-9]\+)' > 3.txt
或者,如果您希望仅使用1.txt
与模式匹配的行进行比较,您可以尝试:
grep -vf <(grep "([0-9]\+)" 1.txt) 2.txt > 3.txt
简单的方法是:
在保存到 3.txt 之前,将结果通过管道传输到grep -E '[0-9]+' > 3.txt
好像:
grep -vf.... |grep -E '[0-9]+' > 3.txt
如果您给出 1.txt 、 2.txt 和预期的 3.txt 的一些示例,可能会有一种有效的方法。
这也应该有效:
awk 'FNR==NR {arr[$0];next} !($1 in arr)' 1.txt 2.txt
问候