用sed获取两个字符串之间的字符串

时间:2013-08-16 00:26:01

标签: sed grep

我需要提取(使用sed或grep)两个字符串之间的子字符串。

问题是前后的字符串是带双引号,空格等的html标签......

这是我要提取文本的一行示例:

12pt;">TEXT_TO_GET</span></div></message>

欢迎任何帮助,提前谢谢;)

1 个答案:

答案 0 :(得分:0)

表面上,您可以使用sed

sed 's%12pt;">\(.*\)</span></div></message>%\1%'

或:

sed -n '/12pt;">\(.*\)<\/span><\/div><\/message>/ s%12pt;">\(.*\)</span></div></message>%\1%p'

第一个打印出不匹配的行不变;第二个只打印出匹配的行。

然而,这是在寻找一个非常严格的背景;如果这正是你想要的,它很棒,但是如果你需要改变一些东西,它会很快变得混乱。但是,如果没有任何指示需要适应的变化,则无法可靠地给出更灵活的答案。