首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Unix命令行中删除XML标记?

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

Stack Overflow用户
提问于 2011-03-21 17:56:05
回答 4查看 37.1K关注 0票数 22

我正在创建一个XML文件,它给出了如下输出:

代码语言:javascript
复制
<tag>data</tag>
<tag>more data</tag>
...

请注意,这是一个平面文件,不是XML树。我想删除XML标记,只显示其间的数据。我是从命令行做这一切的,我想知道有没有比两次把它输入awk更好的方法……

代码语言:javascript
复制
cat file.xml | awk -F'>' '{print $2}' | awk -F'<' '{print $1}'

理想情况下,我希望在一个命令中完成此操作

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-21 18:01:15

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

代码语言:javascript
复制
sed -e 's/<[^>]*>//g' file.xml

当然是you should not use regular expressions for parsing XML because it's hard

票数 43
EN

Stack Overflow用户

发布于 2011-03-21 18:20:23

使用awk:

代码语言:javascript
复制
awk '{gsub(/<[^>]*>/,"")};1' file.xml
票数 4
EN

Stack Overflow用户

发布于 2015-05-05 06:07:29

使用html2text命令行工具,它可以将html转换为纯文本。

或者,您可以尝试使用ex

代码语言:javascript
复制
ex -s +'%s/<[^>].\{-}>//ge' +%p +q! file.txt

或者:

代码语言:javascript
复制
cat file.txt | ex -s +'%s/<[^>].\{-}>//ge' +%p +q! /dev/stdin
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5376024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档