【问题标题】:manipulate xml using perl or sed使用 perl 或 sed 操作 xml
【发布时间】:2013-10-18 02:45:08
【问题描述】:

输入行:

<column name="Sample"><![TEST[x-y]]></column>

输出线:

<column name="Sample"><![TEST[y]]></column>

x 是任意数字

y 是任意数字

我想摆脱x-。 如何在 Perl 中做到这一点?或者也许可以使用 sed?

【问题讨论】:

  • 您尝试解析输入吗?这不是 XML,特别是 &lt;![TEST[y]]&gt; 不是格式良好的 XML。所以你可能不应该把它叫做 XML(当然你不能在它上面使用 XML 工具)。

标签: xml perl sed


【解决方案1】:

这个正则表达式应该是你想要的:

$line=~s/(?<=<\!\[TEST\[)\d+\-//;

单线风味:

perl -pe 's/(?<=<\!\[TEST\[)\d+\-//' file.xml

但是,就像 StackOverflow 中的 said before 一样,避免使用正则表达式解析/处理 XML。改用模块(例如XML::Simple)。

【讨论】:

  • 不要推荐XML::Simple。它自己的文档说“不鼓励在新代码中使用这个模块。其他模块可用,它们提供更直接和一致的接口。”
  • 注明。自从我不得不解析任何 XML 以来已经有很长时间了。请随时使用更合适的模块编辑我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 2022-01-07
  • 2013-02-18
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多