Como substituir um símbolo no sed somente se ocorrer antes de uma letra?

1

Nos meus documentos, tenho muitas ocorrências como estas:

[["A [["b [["8 [["c [["F [["1...

O que eu preciso fazer é substituir os colchetes duplos por colchetes simples, mas somente se houver uma letra após um padrão [[" , não um número. Para que fique assim:

["A ["b [["8 ["c ["F [["1...

O que tentei fazer é isto:

sed -i -e 's/[["[a-z A-Z]/["[a-z A-Z]/' ARD.json

O que ele faz é adicionar uma string ["[a-z A-Z] no começo de cada linha. Também tentei o mesmo com [[:alpha:]] expression, não funciona.

    
por Anton 12.11.2014 / 09:00

1 resposta

3

Tente:

$ sed -e 's/\[\[\("[[:alpha:]]\)/[/g' ARD.json
["A ["b [["8 ["c ["F [["1

Com o GNU sed:

sed -re 's/\[\[("[[:alpha:]])/[/g'
    
por 12.11.2014 / 09:08