반응형
sed는 stream editor 이름을 줄인 명령어로, 말그대로 스트림 편집기를 의미한다. 주로 문자열을 치환하거나 삭제할때 유용하게 사용할 수 있는 명령어다. 이 외에도 특정 라인까지 출력, 특정 패턴에 맞는 행들만 출력하는 기능을 지원한다. 그렇다면 sed 명령어를 어떻게 사용하는 사용법과 예제를 살펴보자.
sed 명령어 사용법
문자열 치환
sed 's/원본문자열/바꿀문자열/g' 파일명
문자열 치환은 위와 같이 진행할 수 있다. 여기서 눈 여겨볼 부분은 s와 g인데, s는 치환을 하겠다는 subcommand이고 g는 전체 문자열을 대상으로 진행하겠다는 의미다.
특정 파일의 lim 이라는 문자열을 kim으로 변경하기
$ cat text
Lim's coding blog.
coding blog made by lim coding.
This is sed test file written by lim.
Thank you.
위와 같은 텍스트 파일이 있다고 하자. 이를 sed 명령어를 통해 lim을 kim을 바꿔보자.
$ sed 's/lim/kim/g' text
Lim's coding blog.
coding blog made by kim coding.
This is sed test file written by kim.
Thank you.
위 처럼 lim을 kim으로 변경했다. 하지만 Lim 처럼 대문자가 포함된 문자열은 치환되지 않았는데, 이는 i 옵션을 통해서 대소문자 구분없이 치환할 수 있다.
# 대소문자 관계없이 치환
$ sed 's/lim/kim/gi' text
여기서 주의할 점은 이렇게 하면 원본 파일을 그대로 남아있다는 점이다. 해당 출력을 새로운 파일로 저장해보자.
치환 하여 새로운 파일로 저장
# text 파일의 내용을 치환한 내용을 new-text에 저장
$ sed 's/lim/kim/g' text > new-text
그렇다면 원본을 수정하고 싶으면 어떻게 할까요? 이떄는 i 옵션을 통해서 수행할 수 있습니다.
원본 파일 수정하기 (-i옵션)
$ sed -i 's/lim/kim/gi' text
반응형
'Linux' 카테고리의 다른 글
[linux] shutdown 명령어시 나오는 ignoring: Interactive authentication required. 에러 해결법 (0) | 2023.02.08 |
---|---|
[bash] loop돌때 파일의 맨 마지막 라인이 출력되지 않는 문제 (0) | 2023.01.05 |
[linux] 특정 프로세스가 사용중인 파일 확인 (lsof) (0) | 2022.04.11 |
curl에서 PUT 명령어시 Content-Type header [application/x-www-form-urlencoded] is not supported 에러 해결 (0) | 2022.03.10 |
[linux] apt와 apt-get의 차이 (0) | 2022.02.05 |