Tente usar aspas simples em '
, desta forma:
grep -Po '(?s)(<h2>.+?<!-- /endcontent -->)' input.html > output.html
O grep age de maneira diferente quando as coisas são citadas em dobro.
Eu nunca usei o grep para analisar arquivos HTML e estou tendo o seguinte problema:
grep -Po "(?s)(<h2>.+?<!-- /endcontent -->)" input.html > output.html
-bash: !--: event not found
Eu também tentei…
grep -Po "(?s)(<h2>.+?\<!-- \/endcontent --\>)" input.html > output.html
… sem sucesso.
Existe uma maneira de fazer com que o grep / bash analise arquivos HTML ou há outro aplicativo que eu deva usar?
Obrigado.
Edit: Parece que há um truque entre o shell e o grep. Procurando pela string exata "test" funciona, enquanto nem "t.st" nem "t.st" funcionam. Alguém sabe por quê?
Edit: É a opção "-P" que quebra o regex, por algum motivo.
Editar: Sim, a opção "-P" requer a duplicação do caractere de ponto que representa qualquer caractere. Estranho.
grep -Po 't..st' input > output
Tente usar aspas simples em '
, desta forma:
grep -Po '(?s)(<h2>.+?<!-- /endcontent -->)' input.html > output.html
O grep age de maneira diferente quando as coisas são citadas em dobro.