sed e sudo com string substituir

1

Eu quero substituir uma string por sed e salvar as alterações no mesmo arquivo que precisa do sudo, pois é um arquivo de propriedade raiz.

Mas enquanto isso estou ficando abaixo do erro

raja@raja-UbuntuVM:~$ sudo sed 's|gateway 192.168.56.1| |g' /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
iface eth1 inet static
        address 192.168.56.102
        netmask 255.255.255.0

-bash: syntax error near unexpected token 'newline'
raja@raja-UbuntuVM:~$ sudo sed 's|gateway 192.168.56.1| |g' /etc/network/interfaces > /etc/network/interfaces
-bash: /etc/network/interfaces: Permission denied
    
por rɑːdʒɑ 14.11.2015 / 06:30

1 resposta

4
sudo sed 's|gateway 192.168.56.1| |g' /etc/network/interfaces > /etc/network/interfaces

Isso falha porque seu shell atual (que não é sudo ) tenta abrir o arquivo interfaces antes que o sudo esteja sendo executado. Para contornar isso, use a opção -i (inplace edit) de sed :

sudo sed -i 's|gateway 192.168.56.1| |g' /etc/network/interfaces

edita e substitui o arquivo ao mesmo tempo.

    
por 14.11.2015 / 06:38