문자열을 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
답변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
파일을 동시에 편집하고 교체합니다.