본문 바로가기
OS/Linux

[Linux] - sed

by beomzh 2023. 7. 18.
728x90
반응형

stream editor

sed는 "stream editor"의 약자로, 파일 편집을 자동화하는 명령줄 유틸리티입니다.

주로 파일 내용에서 특정 패턴을 찾아서 다른 패턴으로 바꾸는 작업에 사용됩니다.

기본 예제

sed [option] [command] [file]
옵션 설명
-p  행을 출력한다(-n 옵션과 함께 사용할 경우, 선택된 행만 출력한다.)
-d  선택한 행을 삭제한다.
-f  파일 안의 내용을 실행한다.
's/가/나/g' '가' 문자열을 '나' 문자열로 대체한다.
-e 다중 편집을 한다.
-q sed를 종료한다.

연산자

메타문자 의미 예제 설명
^ 라인의 처음 /^tomcat/ tomcat으로 시작하는 모든 라인들
$ 라인의 끝 /tomcat$/ tomcat로 끝나는 모든 라인들
. 하나의 문자 매칭, 하지만 newline 문자는 제외 /t….t/  
* 매칭되는 문자가 없거나 여러 개의 문자열이 될 수 있다. / *tomcat/ 아무것도 없거나 스페이스로 시작하여 linux 문자가 있는 라인들
[] 하나의 문자 매칭 /[Tt]omcat/ Tomcat 또는 tomcat을 포함하는 라인들
[^ ] 하나의 문자도 매칭되지 않음 /[^A-KM-Z]omcat/ Omcat 앞에 A에서 k까지 문자와 M에서 Z까지 문자를 포함하지 않는 라인들
\(.. \) 매칭된 문자들 저장 s/\(love\)able/\1er/ 매칭된 패턴을 나중에 참조하기 위해 \1을 사용하여 1번 태그로 저장하였다. 예제에서 lovable은 lover를 치환하기 위한 문자열로 기억된다.
& 치호나 문자열로 기억될 수 있는 검색 문자열 저장 s/tomcat/***&**/ &는 검색 문자열이므로 tomcat 문자열은 * 문자로 둘러싸인다. Tomcat 문자열은 ***tomcat**로 된다.
\< 단어의 시작 /\<tomcat/ tomcat으로 시작하는 단어를 포함하고 있는 라인들을 매칭한다.
\> 단어의 끝 /tomcat\>/ tomcat으로 끝나는 단어를 포함하고 있는 라인들을 매칭한다.
x\{m\} X 문자의 반복 횟수 m회 반복 /o\{5\}/ o가 5회 반복
x\{m, \} 적어도 m회 반복 /o\{5,\}/ o가 적어도 5회 반복
x\{m,n\} m회~n회 사이 반복 /o\{5,10\}/ o가 5회에서 10회 사이 반복
728x90
반응형