Combine todos os caracteres, mas não a string… em sed

1

Estou tentando remover strings cercadas por outras strings ( \[ e \] ) em sed. Eu posso igualar a string de início \[ facilmente, mas depois disso eu não combinarei nenhum caractere incluindo \ e ] , mas não se eles estiverem em uma linha ( \] end string).

Isso é possível?

    
por kbenoit 24.11.2016 / 04:03

1 resposta

2

sed -e 's/\\[\([^\]\|\[^]]\)*\\]//g'

Anatomia do padrão de pesquisa:

\\[             starting delimiter
    \(
      [^\]      not a backslash
           \|    or
      \[^]]     a backslash followed by any char except a right bracket
    \)*          repeat as many times as possible
\\]             ending delimiter
    
por 24.11.2016 / 08:51