Estou tentando descobrir por que este comando não está funcionando para mim:
sed -n -e '/<a href=\(.*\)>/,/<\/a>/p' text.html
Em text.html temos algo como...
<somestupidstuff> <a href='teste'> teste </a> </somestupidstuff>
A saída desejada é:
<a href='teste'> teste </a>
Mas o que eu recebo é:
<somestupidstuff> <a href='teste'> teste </a> </somestupidstuff>
Talvez eu não esteja entendendo completamente o regex.
É muito mais fácil de usar
grep
para o seu caso. Por exemplo, desta forma:Caso haja
<
entre<a href>..</a>
você pode tentar isso:No entanto, preste atenção que ele pode retornar um dado que você não espera para strings onde você tem várias
<a href=...</a>
ocorrências na mesma string.sed
não funciona para você porque/pattern1/,/pattern2/p
instruised
a imprimir todas as linhas entre linhapattern1
a linhapattern2
(incluindo linhas com padrões).O problema também pode ser resolvido
sed
, mas depende dosomestupidstuff
conteúdo (por exemplo, se é o mesmo em todos os casos ou não, etc.)