我有数千个格式不正确的 XML 文件要修补。
其中许多包含以下问题:(<someTag attr='text [< 99]'/>
注意方括号中的左角)。
我想写一个 sed 表达式来替换 *.xml 的所有[<
实例[<
。
sed -n 19p myFile.xml
<someTag attr='text [<99]'/>
按预期返回。
echo '[<45' | sed -n '/\[</p'
[<45
按预期返回。
但是,sed -n '/\[</p' myFile.xml
当对文件使用该表达式而不是回显时,显然我需要不同的语法。我需要使用什么语法?
另外,一旦我完成了这件事,我的计划就是做类似的事情
sed -i -n 's/correct expression/\[</g/p' *.xml
针对所有文件中的所有匹配项运行它并输出新版本以帮助我调试。这看起来合理吗?
顺便说一句,sed 似乎是可以使用的工具,但我完全可以使用在 Linux 上运行的任何其他解决方案。
谢谢!