Sed com parênteses angulares

0

Isso funciona

sed 's/[[:space:]]*<default>false/XXX/'

Por que a preposição de um > faz com que ele falhe

sed 's/>[[:space:]]*<default>false/XXX/'

escapar do > também não ajuda. Em outros cenários > parece funcionar bem. Por que não aqui?

texto: <key type="b" name="launcher-minimize-window"> <default>false</default>

    
por nonanme 05.02.2015 / 19:32

1 resposta

1

Como você já foi informado por glenn jackman nos comentários:

sed reads it's input one line at a time, so unless you're doing some programming to accumulate the lines, there won't be any newlines to match

Você pode empurrar o GNU sed para tratar todos os arquivos como uma única linha com a opção -z

-z, --null-data

      separate lines by NUL characters

Então você pode tentar

sed -z 's/>[[:space:]]*<default>false/XXX/'
    
por 05.02.2015 / 20:14