我有一个像这样的字符串
<anytag>my message</anytag>
如何使用sed或awk在标签之间提取消息?
所以我只得到"my message"
答案 0 :(得分:1)
sed 's/<.*>\(.*\)<\/.*>/\1/g' file
答案 1 :(得分:1)
尝试:
awk -F'[><]' '{print $3}' Input_file
将字段分隔符设为'[&gt;&lt;]'并打印第3个字段。
答案 2 :(得分:0)
使用xmllint (来自libxml2):
xmllint --xpath '//anytag/text()' <(echo "<anytag>my message</anytag>")
答案 3 :(得分:0)
我不想为精简提取字符串my xml安装xml paser 消息并不复杂
对于简单字符串,您可以使用以下 sed 方法:
s="<anytag>my message</anytag>"
sed 's~<[^<>]*>\([^<>]*\)</[^<>]*>~\1~' <<< $s
输出:
my message
答案 4 :(得分:0)
如果文件的每一行都是您显示的格式,则可以使用以下awk
命令。
awk -F "<[^<]+?>" '{print $2;}' <filename>
输入:
<anytag>my message</anytag>
<mytag>abc</mytag>
输出:
my message
abc