文字列をsedに置き換え、rootが所有するファイルなど、sudoを必要とする同じファイルに変更を保存したいと思います。
ところで、この操作の実行中に次のエラーが発生しました。
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
答え1
sudo sed 's|gateway 192.168.56.1| |g' /etc/network/interfaces > /etc/network/interfaces
現在の(非)シェルが実行前にファイルをsudo
開こうとするため、失敗します。この問題を解決するには、次の(適切な場所で編集)オプションを使用します。interfaces
sudo
-i
sed
sudo sed -i 's|gateway 192.168.56.1| |g' /etc/network/interfaces
ファイルを同時に編集して置き換えます。