Como posso usar o sed para imprimir apenas o que aparece entre essas duas strings?

0

Como posso usar o sed para postar apenas o que aparece entre as iterações de:

    "<title><![DATA["

e

     ]]></title>

Eu tentei fazer

     sed 's/<title><![DATA[/(.*)/]]//g'

mas apenas imprime o arquivo inteiro

    
por sad 08.03.2014 / 06:12

2 respostas

1

Acredito que o que você está procurando pode ser realizado com isso:

$ sed -n '/<title><![DATA[/,/]]></title>/p' /path/to/file

Isso está usando o primeiro padrão, /<title><![DATA[/ como a correspondência inicial, seguido por uma vírgula (, ). Isso diz ao sed que queremos tudo entre os dois. Em seguida, informamos sed o que não podemos no outro extremo deste intervalo, /]]></title>/ .

    
por 08.03.2014 / 06:29
0

Concordo com o @Anthon, mas para um escopo limitado e se ele aparecer apenas uma vez na mesma linha, isso é uma adaptação do seu script sed:

sed 's|<title><!\[DATA\[\(.*\)\]\].*||g' 
    
por 08.03.2014 / 07:04

Tags