Regex 如何从差异比较中查找和排除字符串正则表达式文字?
我正试图编写一个LinuxDiff语句来忽略所有在其中某处有一个文本字符串的行差异。(在我的例子中,我希望忽略url不同的行。) 目前我已经试过了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
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”,并自动转义特殊字符,如