Bash Sed匹配两个字符串之间的第一次出现

Bash Sed匹配两个字符串之间的第一次出现,bash,shell,sed,Bash,Shell,Sed,我有一个命令,它将把string1和string2之间输出的匹配分配给var,问题是可能有多个匹配,我只希望第一个匹配分配给var。 这怎么可能 var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/p') 这可能适用于您(GNU-sed): var=$( 但这将返回与$String1对应的字符串 var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/ {H;/"$string2

我有一个命令,它将把string1和string2之间输出的匹配分配给var,问题是可能有多个匹配,我只希望第一个匹配分配给var。 这怎么可能

var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/p')
这可能适用于您(GNU-sed):

var=$(
但这将返回与$String1对应的字符串

var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/ {H;/"$string2"/ {p;q}')

这返回了第一次出现的一组线

将它输送到
头部
头部-1
?输送到
头部
工作,我没有管道反射,我只专注于sed,因为他们说管道永远是你的朋友!
var=$(<<<"$OUTPUT" sed '/'"$string1"'/,/'"$string2"'/!d;/'"$string2"'/q')
var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/ {p;q}')
var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/ {H;/"$string2"/ {p;q}')