Вы можете использовать это gnu grep
:
var=$(grep -zoP '.+(?=\R{2}GET )' file)
echo "$var"
foo=bar1&foo2=bar2
утверждение Lookahead (?=\R{2}GET )
гарантирует, что на входе есть ровно 2 символа новой строки (\R
), за которыми следует "GET "
перед текущей позицией.
Альтернатива awk
решение на основе:
awk '!NF{++n; next} n && /^GET /{print p} {p=$0; n=0}' file
foo=bar1&foo2=bar2