sed repor apenas linhas com grupos correspondentes

6

Atualmente, tenho este comando:

sed 's/\([^C]*\)/AB/'

Insere "AB" antes da primeira instância de "C" em uma linha. Mas também está adicionando "AB" ao final de cada linha sem um "C".

Como posso editá-lo apenas quando encontra "C"?

    
por Sepero 30.03.2014 / 23:50

2 respostas

4

O que há de errado em simplesmente substituir o C ?

sed 's/C/ABC/'

Isso só substituirá a primeira instância (se você quiser substituí-los todos, você adicionará g no final).

    
por 31.03.2014 / 00:21
3

Você precisa de um filtro de endereço:

sed '/C/s/\([^C]*\)/AB/'
    
por 30.03.2014 / 23:57

Tags