我正在尝试编写一个linux diff语句来忽略在其中某处有文字字符串的所有行差异。 (在我的情况下,我想忽略带有网址差异的行。)
目前我已经尝试了
diff -I '^insert.*' file1.txt file2.txt > outputDiff.txt
这里的输出取出了以insert开头的行,所以这是向正确方向迈出的一步,但我需要删除一个带有大量句点和斜杠的更长的字符串文字(url)。 / p>
确切地说:我需要寻找具有以下内容的行:
ta.com/nmo/nmdr/templates/nmdr.css\
在其中的某个地方,将它们从差异结果中排除。
如何查找带有可在diff -I语句中使用的正则表达式的文字字符串? (如果我的diff语句需要,则包括行的开头和行的结尾)
答案 0 :(得分:0)
您需要在正则表达式中转义setTimeout
和.
。
\
答案 1 :(得分:0)
在一个命令中:
diff -I 'ta\.com/nmo/nmdr/templates/nmdr\.css\\' file1.txt file2.txt \
> outputDiff.txt
这是转义特殊.
字符(通常表示“任何字符”),也处理字面反斜杠。
或者,您可以在链式命令中执行此操作(效率稍低):
diff file1.txt file2.txt | fgrep -v 'ta.com/nmo/nmdr/templates/nmdr.css\\' \
> outputDiff.txt
fgrep
或等效grep -F
代表“快速grep”并自动转义特殊字符,例如.