sedとsudoと文字列の置き換え

sedとsudoと文字列の置き換え

文字列を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開こうとするため、失敗します。この問題を解決するには、次の(適切な場所で編集)オプションを使用します。interfacessudo-ised

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

ファイルを同時に編集して置き換えます。

おすすめ記事