regex - 如何使用 diff 排除多行模式?

标签 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>

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

最佳答案

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

这对我有用:

diff -I 'PRICE' -I 'AVAILABILITY' 1.xml 2.xml

关于regex - 如何使用 diff 排除多行模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15497658/

相关文章:

从裸仓库上更改的文件中获取 git 存档

linux - 从文件列表创建 .new 文件

diff - 如何使摩纳哥差异编辑器的左侧(原始代码)可编辑?

javascript - 正则表达式用Javascript替换每第二次出现的内容

c# - 正则表达式选择子字符串的模式

regex - 从遵循 bash 脚本模式的单行中删除主机名

unix - cat 和 grep 匹配的文件名和行号

Java正则表达式从字符串中删除括号之间和包括括号的文本

c# - 用于验证多个值范围的正则表达式 (.NET)

c - 共享内存程序在 c 中不起作用