如何从Unix命令行中删除XML标签?

Tar*_*ski 18 xml unix shell command-line xml-parsing

我正在使用XML文件,它给出了这样的输出:

<tag>data</tag>
<tag>more data</tag>
...
Run Code Online (Sandbox Code Playgroud)

注意,这是一个平面文件,而不是XML树.我想删除XML标记,只显示其间的数据.我正在从命令行执行所有这些操作,并且想知道是否有更好的方法,而不是将其连接到awk两次...

cat file.xml | awk -F'>' '{print $2}' | awk -F'<' '{print $1}'
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想在一个命令中执行此操作

Joh*_*web 37

如果您的文件看起来像那样,那么sed可以帮助您:

sed -e 's/<[^>]*>//g' file.xml
Run Code Online (Sandbox Code Playgroud)

当然,您不应该使用正则表达式来解析XML, 因为它很难.

  • 谢谢.请编辑以在g之后添加结束 (2认同)