본문 바로가기

OS

Linux - 리눅스에서 파일 내용 수정

터미널에서나 스크립트에서 특정 파일의 내용을 수정하고 싶을 때 아래와 같이한다.


sed -e "/찾을문자열/ c\바꿀문자열" test.txt


하지만 sed는 표준출력으로 터미널상에 출력된다.  이를 파일에 다시 저장하기 위해서는 아래와 같이 한다.


sed -e "/찾을문자열/ c\바꿀문자열" test.txt > test.txt.tmp
mv test.txt.tmp test.txt


sed 사용중에 해당 파일이 이미 열려있는 상태이므로 다른 파일에 쓰고 이를 다시 원본파일로 이름을 바꿔야한다.

test.txt > test.txt 로 사용하면 파일 내용이 모두 사라진다.



ex>


cat test.txt

my_ip = 192.168.1.111


sed -e "/my_ip/ c\my_ip = 192.168.1.222" test.txt > test.txt.tmp
mv test.txt.tmp test.txt


cat test.txt

my_ip = 192.168.1.222