- cat file
- <span class=a><span class=b>AAA<a href="">link</a></span>5678</span>
- <span class=a><span class=b>BBB<a href="">link</a></span>5678</span>
- <span class=a><span class=b>CCC<a href="">link</a></span>5678</span>
提取和第一个之间的字符串
- sed -r 's/[^>]*>[^>]*b>([^>]*>[^>]*>).*/\1/' file
- AAA<a href="">link</a>
- BBB<a href="">link</a>
- CCC<a href="">link</a>
[解析]
文本中有2个,这是在sed中最头疼的问题,因为它是贪婪匹配,如果有多个pattern的话,它肯定是匹配到最后一个,如果规避这个问题,只有把文本用正则逐个标记出来。
阅读(6441) | 评论(1) | 转发(1) |