如何使用差异排除多条线模式?

use*_*138 1 regex unix diff

我想对两个 xml 文件进行比较,但忽略 2-3 行模式。

例如:假设我想在比较下面的 xml 格式时忽略可用性和价格。

这是我到目前为止所拥有的:

diff -I '^<PRICE>*' 1.xml 2.xml

<CATALOG>

    <PLANT>  
    <COMMON>Bloodroot</COMMON>  
    <BOTANICAL>Sanguinaria canadensis</BOTANICAL>  
    <ZONE>4</ZONE>  
    <LIGHT>Mostly Shady</LIGHT>  
    <PRICE>$2.44</PRICE>  
    <AVAILABILITY>031599</AVAILABILITY>  
    </PLANT>  
</CATALOG>
Run Code Online (Sandbox Code Playgroud)

使用上面的差异,它跳过了价格,但我如何为这个正则表达式添加可用性?

Nam*_*val 6

您是否再次尝试使用 -I?

这对我有用:

diff -I 'PRICE' -I 'AVAILABILITY' 1.xml 2.xml
Run Code Online (Sandbox Code Playgroud)

  • 小心:如果一个文件有 2 个差异,并且您只使用 -I 排除了这 2 个模式中的 1 个,那么差异输出将显示两个差异,而不仅仅是您没有要求它排除的差异。这可能使它看起来像 -I 不工作,即使它是。 (2认同)