用脚本提取文本

时间:2014-03-11 09:38:23

标签: linux shell sed awk

我们有一个以下格式的xml文件:

<mailBox>
...
</mailBox>
<mailBox>demon</mailBox>
<tz>16385</tz>
<Contact>
....
</Contact>
</mailBox>
<mailBox>
...
</mailBox>

有没有办法使用sed / awk / grep one-liner从这个xml中提取特定节点?
我正在寻找格式

的东西
`sed -n 'mailBox\>demon,......p`

2 个答案:

答案 0 :(得分:0)

在您的示例中,标记恶魔位于同一行,而不是文件的其余部分。错误或具体

如果是错误(因此邮箱标签位于不同的行上)

sed -n '1h;1!H;${x
s/.*\(<mailBox>demon.*\)/\1/;s|</mailBox>.*||;p
}' YourFile

答案 1 :(得分:0)

你可以尝试:

perl -0777 -nE 'foreach (/<mailBox>(.*?)<\/mailBox>/sg) {say $_}' file