Regex 如何从差异比较中查找和排除字符串正则表达式文字?

Regex 如何从差异比较中查找和排除字符串正则表达式文字?,regex,linux,diff,Regex,Linux,Diff,我正试图编写一个LinuxDiff语句来忽略所有在其中某处有一个文本字符串的行差异。(在我的例子中,我希望忽略url不同的行。) 目前我已经试过了 diff -I '^insert.*' file1.txt file2.txt > outputDiff.txt 这里的输出去掉了以insert开头的行,这是正确的一步,但是我需要删除一个较长的字符串文字(url),其中包含大量句点和斜杠 确切地说:我需要查找具有以下内容的行: ta.com/nmo/nmdr/templates/nmdr.c

我正试图编写一个LinuxDiff语句来忽略所有在其中某处有一个文本字符串的行差异。(在我的例子中,我希望忽略url不同的行。)

目前我已经试过了

diff -I '^insert.*' file1.txt file2.txt > outputDiff.txt
这里的输出去掉了以insert开头的行,这是正确的一步,但是我需要删除一个较长的字符串文字(url),其中包含大量句点和斜杠

确切地说:我需要查找具有以下内容的行:

ta.com/nmo/nmdr/templates/nmdr.css\
并将其从差异结果中排除


如何查找带有正则表达式的文本字符串,该正则表达式将在diff-I语句中工作?(如果我的diff语句需要,请包括行首和行尾)

您需要在regexp中转义
\

diff -I 'ta\.com/nmo/nmdr/templates/nmdr\.css\\' file1.txt file2.txt > outputDiff.txxdt
在一个命令中:

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”,并自动转义特殊字符,如