Você poderia usar isso
sed -n 's!^.*\^"\(http[^^]*\)"^.*!!p'
A pegadinha em potencial de um novato para REs é que ^
é um indicador para início da linha , então você tem que garantir que você escape \^
se você quiser uma seta para cima literal o início do seu RE.
A correspondência do padrão RE pode ser explicada da seguinte forma
-
^.*\^"
- Combine desde o início da linha até vermos a última possível citação dupla^"
que satisfaz o resto do padrão -
\(
- Inicia um bloco de substituição que pode ser substituído como -
http[^^]*
- corresponde ahttp
seguido por tantos caracteres que não são^
quanto possível -
\)
- Encerra o bloco de substituição"^.*
- Faça a correspondência entre aspas duplas e a seta para cima"^
, o máximo possível (até o final da linha)
Essa correspondência inteira é substituída por , que é o bloco de padrões começando
http