0

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

问题是前后的字符串是带有双引号、空格等的html标签……

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

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

欢迎任何帮助,在此先感谢;)

4

1 回答 1

0

从表面上看,您可以使用sed

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

或者:

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

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

但是,这是在寻找一个非常严格的上下文;如果这正是你想要的,那很好,但如果你需要改变一些东西,它很快就会变得混乱。但是,如果没有任何迹象表明需要适应哪些变化,就不可能可靠地给出更灵活的答案。

于 2013-08-16T02:37:45.653 回答