br comando 'não terminado' [fechado]

2

Estou recebendo:

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 char 46 está entre os caracteres especiais *.

Estou trabalhando em máquinas centos de 5 a 6.5.

A alteração do delimitador não ajudou nem utilizou "em vez de" e o código parece funcionar no terminal do mint 17.3, menos o -c. Acho que pode estar interpretando o. ou o * não como um caráter especial.

Eu 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 na casa da moeda 17.3.

    
por Rujikin 24.06.2016 / 17:59

1 resposta

2

O problema era que meu editor estava sendo idiota e eu achei que fosse uma quebra de linha.

Quando coloco

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

No editor, o "/etc/sysctl.conf" estaria tocando a borda da janela, de modo que exibisse parte dela na próxima linha. Eu pensei que era apenas quebra automática de palavras, mas não. Centos ou nano decidiram que "/etc/sysctl.conf" deveria ser colocado em uma nova linha se eu fiz o upload do arquivo ou copiei o código para ele. Eu apaguei manualmente a nova linha e funciona normalmente.

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

Essa nova linha não existe de onde estou fazendo o upload.

    
por 24.06.2016 / 19:29

Tags