Como insiro uma string entre duas outras strings contendo caracteres especiais?

1

Estou escrevendo um script para inserir o URL do satélite correto em /etc/sysconfig/rhn/up2date

Eu estava tentando adicionar esse comando ao script:

sed -i 's/https//.*XMLRPC///https servername.com XMLRPC/g' /etc/sysconfig/rhn/up2date

mas estou recebendo:

sed: -e expression #1, char 10: unknown option to 's'

Como corrijo isso?

    
por yossib 22.12.2014 / 15:10

1 resposta

1

Você está usando / como um delimitador e como muito do seu regex, sem usar nenhum escape. Sed não consegue distinguir os diferentes usos e fica confuso. Você poderia usar um \ (barra invertida) na frente de todas as barras no seu padrão de regex e substituição, mas é mais fácil, neste caso, usar um delimitador diferente. Estou um pouco confuso com sua linha também, mas aqui está o meu palpite, usando # como o delimitador de padrão sed.:

sed -i 's#https//.*XMLRPC#//https servername.com XMLRPC#g' /etc/sysconfig/rhn/up2date

    
por 22.12.2014 / 17:01

Tags