命令grep -vf 1.txt 2.txt > 3.txt
会3.txt
2.txt
1.txt
所拥有的内容grep
,但我如何使用Example:
(0001) compare
test ignore
984 ignore
(10) compare
(1242342542) compare
来比较字符串有(0-9)?
{{1}}
答案 0 :(得分: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
答案 1 :(得分:0)
简单的方法是:
保存到3.txt之前,将结果传递给grep -E '[0-9]+' > 3.txt
看起来像:
grep -vf.... |grep -E '[0-9]+' > 3.txt
如果你给出一些1.txt,2.txt和预期的3.txt的例子,可能会有一种有效的方法。
答案 2 :(得分:0)
这也应该有效:
awk 'FNR==NR {arr[$0];next} !($1 in arr)' 1.txt 2.txt
问候