提取两个字符串之间的文本,但仅使用sed第一次出现?

时间:2019-03-11 11:42:49

标签: shell sed sh

所以我有一个看起来像这样的字符串:

<tag>Hello world </tag> blah blah blah <tag> Good night !! </tag>

我只需要提取问候世界。知道如何构造sed命令吗?

2 个答案:

答案 0 :(得分:1)

使用简单剪切:

echo "<tag>Hello world </tag> blah blah blah <tag> Good night ls -ltrh cptrade* </tag>" | cut -d'>' -f2 | cut -d'<' -f1

答案 1 :(得分:0)

粗暴但有效:

sed 's|</tag>.*||;s|.*<tag>||'

“从头一个</tag>开始删除所有内容,然后删除直到最后一个(并且可能仅剩余的)<tag>并包括它在内的所有内容。”