我有这个命令,它将从string1和string2之间的输出分配给var,问题是有多个匹配可能,我想只将第一个分配给var。 怎么可能?
var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/p')
答案 0 :(得分:0)
sed -n '/"$string1"/,/"$string2"/{:l p;n;/"$string2"/{p;Q};b l}'
答案 1 :(得分:0)
这可能适合你(GNU sed):
var=$(<<<"$OUTPUT" sed '/'"$string1"'/,/'"$string2"'/!d;/'"$string2"'/q')
答案 2 :(得分:0)
var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/ {p;q}')
但是返回对应于$ String1
的字符串var=$(echo "$OUTPUT" | sed -n '/"$string1"/,/"$string2"/ {H;/"$string2"/ {p;q}')
这将返回第一个出现的行