Linux 如何提取两个xml标记之间的字符串?
我有一根这样的绳子Linux 如何提取两个xml标记之间的字符串?,linux,bash,awk,sed,ash,Linux,Bash,Awk,Sed,Ash,我有一根这样的绳子 <anytag>my message</anytag> 我的留言 如何使用sed或awk在标记之间提取消息? 因此,我使用xmllint(来自libxml2)仅获得“我的消息”: xmllint--xpath'//anytag/text()'sed的/\(.*\)/\1/g文件 我不想为lite提取字符串my xml安装xml paser 信息并不复杂 对于简单字符串,您可以使用以下方法: s="<anytag>my message&
<anytag>my message</anytag>
我的留言
如何使用sed或awk在标记之间提取消息?
因此,我使用xmllint(来自libxml2)仅获得“我的消息”:
xmllint--xpath'//anytag/text()'sed的/\(.*\)/\1/g文件
我不想为lite提取字符串my xml安装xml paser
信息并不复杂
对于简单字符串,您可以使用以下方法:
s="<anytag>my message</anytag>"
sed 's~<[^<>]*>\([^<>]*\)</[^<>]*>~\1~' <<< $s
如果文件的每一行都是所显示的格式,则可以使用以下awk
命令
awk -F "<[^<]+?>" '{print $2;}' <filename>
尝试:
awk-F'[>使用xml解析器处理xml数据我不想为lite提取字符串安装xml paser,我的xml消息并不复杂
s="<anytag>my message</anytag>"
sed 's~<[^<>]*>\([^<>]*\)</[^<>]*>~\1~' <<< $s
my message
awk -F "<[^<]+?>" '{print $2;}' <filename>
my message
abc
awk -F'[><]' '{print $3}' Input_file