bash script2023. 7. 25. 13:47

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/591788

sed에서 -i 옵션을 추가하면 작업한 내용이 텍스트 파일에 반영되어 저장된다. 우선 간단한 예시를 보자. my_data.txt 파일에서 문자열 "abc"를 "123"으로 대체하는 경우다. -i 옵션이 없으면 대체된 내용이 화면으로 출력된다.

# 파일 내용 확인
cat my_data.txt
abc
def
abc
111

# "abc"를 "123"으로 대체
sed 's/abc/123/' my_data.txt
123
def
123
111

# 대체한 결과를 my_data.proc.txt에 저장 (I/O 리다이렉션)
sed 's/abc/123/' my_data.txt > my_data.proc.txt

-i 옵션을 추가하면 결과를 화면에 출력하는 대신 해당 파일을 변경하여 저장힌다.

# 문자열 대체한 결과를 저장
sed -i 's/abc/123/' my_data.txt

cat my_data.txt
123
def
123
111

-i 옵션 뒤에 확장자(suffix)를 지정해 주면 변경하기 전 파일을 백업할 수 있다. 위의 예시에 나온 my_data.txt 파일에서 문자열 "def"를 "zzz"로 대체하고, 대체하기 전의 내용을 my_data.txt.bak 파일에 저장하려면 아래와 같이 입력하면 되겠다.

# "def"를 "zzz"로 대체, .bak 백업 파일 생성
sed -i'.bak' 's/def/zzz/' my_data.txt

728x90
Posted by 반달가면