Procura e substitui frase por espaços usando o comando sed

0

Estou tentando usar o comando sed para substituir algum texto no arquivo.

echo 'native_transport_port: 9042' | sed -E 's/native_transport_port:/\W9042/native_transport_port:9080'

Eu recebo um erro: sed: 1: "s/native_transport_port ...": bad flag in substitute command: 'n'

Eu tentei echo 'native_transport_port: 9042' | sed -E 's/native_transport_port:\s9042/native_transport_port:\s9080' Mas receba um erro: sed: 1: "s/native_transport_port ...": unterminated substitute in regular expression

Estou basicamente tentando procurar native_transport_port e substituir 9042 por 9080.

    
por user1692342 14.02.2017 / 17:31

1 resposta

4

Você precisa concluir o comando s com um% final/:

sed -E 's/native_transport_port:\s9042/native_transport_port:\s9080/'

Enquanto estou nisso, \s não significa nada de especial na seção de substituição, ela se torna s ; então você deve fazer

sed -E 's/native_transport_port:\s9042/native_transport_port: 9080/'

ou, se você quiser reproduzir o espaço em branco como está,

sed -E 's/(native_transport_port:\s)9042/080/'

que reutiliza o texto correspondente na substituição.

Se o seu sed não for compatível com o estilo Perl \s , você poderá corresponder no espaço:

sed 's/native_transport_port: 9042/native_transport_port: 9080/'
    
por 14.02.2017 / 17:33

Tags