rɑː*_*dʒɑ 3 shell bash sudo sed
我想用 sed 替换字符串并将更改保存到需要 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
Run Code Online (Sandbox Code Playgroud)
sudo sed 's|gateway 192.168.56.1| |g' /etc/network/interfaces > /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
这会失败,因为您当前的(非)shell 尝试在执行之前sudo打开该interfaces文件。sudo要解决此问题,请使用以下的-i(就地编辑)选项sed:
sudo sed -i 's|gateway 192.168.56.1| |g' /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
同时编辑和替换文件。
| 归档时间: |
|
| 查看次数: |
15815 次 |
| 最近记录: |