반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: sed] 대용량 파일에서 특정 위치의 행만 출력하기 (0) | 2023.07.25 |
---|---|
[bash: awk] 다중 문자열 검색 - 2 (0) | 2023.07.25 |
[bash: awk] 출력할 내용을 조건에 따라 여러 파일로 나누어 저장하기 (0) | 2023.07.22 |
[bash:uniq, sort] 한글 문자열에 대한 중복 제거 문제 (0) | 2023.07.22 |
[bash: read, while] 공백을 포함한 이름을 가진 파일들에 대한 반복 작업 - 2 (0) | 2023.07.22 |