sed 式は、最初に一致するグループを抽出します。

sed 式は、最初に一致するグループを抽出します。

次のテキストがあります。

somegarbageSTARTfirstgroupENDsomeendgarbage
someohtergarbageSTARTsecondgroupENDsomeotherendgarbage
...

firstgroupsedを使って抽出したいです。

試してみましたが、うまくsed -nr 's/.*START(.*)END.*/\1/p'いきません。最初の一致だけでなく、すべての一致を抽出します。

ベストアンサー1

sed -nr '/.*START(.*)END.*/{s/.*START(.*)END.*/\1/p;q}'
# or (probably faster)
sed -nr 's/.*START(.*)END.*/\1/p; t quit; b end; : quit; q; : end;'

おすすめ記事