[bash: sed] 텍스트 파일의 문자열 수정/변경 리눅스 bash script

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

sed 활용에 대한 다른 게시물들은 여기로



핑백

  • 반달가면 : [bash: sed] 특정한 문자열이 포함된 행 삭제하기 2017-02-08 22:57:16 #

    ... fg"가 있는 행을 제거한 후 화면에 결과를 출력한다. 파일 자체를 수정하여 저장하고 싶다면 -i 옵션을 추가하자. (-i 옵션에 대한 내용은 이전 게시물을 참고하자. 여기로) # my_data.txt 파일에서 "abcdefg"가 포함된 행을 삭제하고 저장 sed -i '/abcdefg/d' my_data.txt sed 활용에 대한 ... more

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

208711
4378
1636334

ad_widget_2