我们的应用程序位于接收端,对 XML 数据进行逆向分析。我们的应用程序没有可用的 Java 或 .NET,但在 Unix 中运行,因此它有 awk 和 Perl。
文件中的 XML 消息包含:
<?xml version="1.0" encoding="ISO-8859-1" ?>
我在 Perl 和 awk 中尝试了一些选项来删除它们,但无法让它们工作:
perl -p -i -e "s/<?xml version="1.0" encoding="ISO-8859-1" ?>//g" inputFile
perl -p -i -e "s/<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>//g" inputFile
perl -p -i -e "s/<\?xml version="1.0" encoding="ISO-8859-1" \?>//g" inputFile
还有其他选项可以使用 PERL 或 AWK 来执行此操作吗?
最佳答案
这对我有用,而无需覆盖数据文件:
perl -p -e 's/<\?xml version="1.0" encoding="ISO-8859-1" \?>//g'
只有当我确定基本正则表达式能够正常工作且不会造成损坏时,我才会覆盖该文件 (-i
)。
关于xml - 使用 perl 或 awk 从 xml 数据中删除 xml 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802003/