Substituir apenas o primeiro caractere de um padrão correspondente

1

Eu preciso escrever um comando sed que leia de um arquivo e substitua o primeiro caractere em cada linha por 0, somente no caso de o primeiro e o segundo caractere nessa linha serem um dígito (e deixar o resto das linhas intacto).

    
por Kostas662 04.06.2016 / 12:15

1 resposta

2

Você pode encontrar linhas que começam com dois dígitos usando ^[0-9][0-9] ou ^[0-9]\{2\}

Então você pode substituir um único caractere por 0 usando s/./0/

Colocando tudo junto,

sed '/^[0-9][0-9]/ s/./0/' somefile

ou

sed '/^[0-9]\{2\}/ s/./0/' somefile
    
por 04.06.2016 / 14:33