我正在创建一个XML文件,它给出了如下输出:
<tag>data</tag>
<tag>more data</tag>
...
请注意,这是一个平面文件,不是XML树。我想删除XML标记,只显示其间的数据。我是从命令行做这一切的,我想知道有没有比两次把它输入awk更好的方法……
cat file.xml | awk -F'>' '{print $2}' | awk -F'<' '{print $1}'
理想情况下,我希望在一个命令中完成此操作
发布于 2011-03-21 18:01:15
如果您的文件看起来就像这样,那么sed
可以帮助您:
sed -e 's/<[^>]*>//g' file.xml
当然是you should not use regular expressions for parsing XML because it's hard。
发布于 2011-03-21 18:20:23
使用awk:
awk '{gsub(/<[^>]*>/,"")};1' file.xml
发布于 2015-05-05 06:07:29
使用html2text
命令行工具,它可以将html转换为纯文本。
或者,您可以尝试使用ex
ex -s +'%s/<[^>].\{-}>//ge' +%p +q! file.txt
或者:
cat file.txt | ex -s +'%s/<[^>].\{-}>//ge' +%p +q! /dev/stdin
https://stackoverflow.com/questions/5376024
复制相似问题