comando sed unterminated `s'

comando sed unterminated `s'

Estou entendendo:

sed: -e expression #1, char 46: unterminated `s' command

Neste código:

sed -i.bak -c 's|net.ipv4.ip_forward.*|net.ipv4.ip_forward = 1|' /etc/sysctl.conf

Meu editor está mostrando que o caractere 46 está entre os caracteres especiais .*.

Estou trabalhando em máquinas centos 5 a 6,5.

Alterar o delimitador não ajudou nem usar " em vez de ' e o código parece funcionar no terminal do linux mint 17.3, menos o -c. Acho que pode estar interpretando o . ou o * não como um caractere especial.

Tentei :

sed 's/net.ipv4.ip_forward.*/net.ipv4.ip_forward = 1/' /etc/sysctl.conf

Demorou 10 minutos e não fez nada, então parei. Funciona no mint 17.3.

Responder1

O problema é que meu editor estava sendo estúpido e pensei que fosse uma quebra de linha.

Quando eu coloco

sed -i.bak -c 's|net.ipv4.ip_forward.*|net.ipv4.ip_forward = 1|' /etc/sysctl.conf

No editor, o "/etc/sysctl.conf" tocaria a borda da janela para exibir parte dela na próxima linha. Eu pensei que era apenas quebra de linha, mas não. Centos ou nano decidiram que "/etc/sysctl.conf" deveria ser colocado em uma nova linha se eu carregasse o arquivo ou copiasse o código nele. Excluí manualmente a nova linha e ela funciona normalmente.

Editar: Sempre que estou usando o nano e digito / enquanto o texto está se aproximando do final da janela, ele decide colocá-lo em uma nova linha, werid. Ele age como se fosse uma quebra de linha, mas em vez disso quebra tudo.

Essa nova linha não existe de onde estou enviando.

Fuuuuuuuuu

informação relacionada