使用grep来更正XML文件

时间:2014-11-30 23:24:57

标签: sed xml-parsing grep

我有一个包含2000 xml文件的文件夹和子文件夹。 需要使用BizTalk系统处理所有文件。 但是有些文件有错误的标签 streetName Bombay Crescent / addressRegion / streetName
我需要你grep才能找到并替换worng标签。 即使用for循环..找到任何带有错误标记的xml文件并替换它。 只有标签“streetName”受到影响。只有“addressRegion”出错了。 我愿意这样做     grep -Po其中streetName和*** / addressRegion如果条件为真
用/ streetName替换/ addressRegion

先谢谢

1 个答案:

答案 0 :(得分:0)

以下内容将查找匹配结束标记为<streetName>的标记</addressRegion>,并将addressRegion更改为streetName。它将替换该行上的所有事件。街道名称不得包含任何会导致匹配的<符号。

sed -e 's:\(<streetName>[^<]*\)</addressRegion>:\1</streetName>:g'

该命令读取其标准输入并写入标准输出。

Sed -i将在其所有输入文件中进行替换:

sed -i -e 's:\(<streetName>[^<]*\)</addressRegion>:\1</streetName>:g' folder/subfolder/*.xml