본문 바로가기

Linux

Sed 명령어

Sed 명령어는 Stream Editor입니다.

원본은 변경되지 않고 단지 출력되는 결과를 변화시켜 보여주는 역할을 합니다.

1. 명령어

1) 출력 : p

p 옵션은 kwonjoonsang과 매치되는 열을 출력 후 data를 출력합니다.

단, -n 옵션을 주는 경우 kwonjoonsang과 매치되는 열을 출력합니다.

2) 삭제 : d

d옵션은 해당 행을 삭제한 결과를 출력합니다.

3d의 경우 3번째 행을 삭제한 결과를 출력합니다.

$는 마지막 행을 의미합니다. 3,$d는 3번째 행부터 마지막 행까지 삭제를 하게 됩니다.

/1/은 1 data를 찾아 해당 data match data를 삭제한 후 출력합니다.

3) 치환 s

s는 data를 치환합니다.

s/kwon/um/ 의 경우 kwon을 um으로 치환합니다.

g플래그는 행 전체에 치환을 적용합니다. g플래그가 없는 경우 처음 등장하는 data만 치환한다.

4) 행의 선택범위 : 쉼표(,)

앞의 값이 일치하는 부분부터 뒤의 값이 일치하는 부분까지 선택되어집니다.

/2/,/4/의 경우 2~4행이 출력됩니다.

5) 다중 편집 : e

e 옵션은 여러 개의 명령을 수행할 수 있습니다.

-e '1,2d' -e 's/3/4/'

는 1~2행까지 삭제하고 3을 4로 데이터를 변경합니다.

6) 파일로 부터 읽기 : r

numdata 파일을 읽어 data 파일의 패턴 kwon을 찾은 곳 다음에 numdata 내용을 삽입합니다.

7) 파일로 쓰기 : w

data 파일에서 kwon 으로 포함하는 행을 test 파일로 저장합니다.

8) 붙이기 : a

a 옵션은 data 파일에서 kwon으로 시작하는 행의 다음에 a\뒤의 문자를 추가합니다.

9) 삽입 : i

패턴 kwon을 찾은 후 i\ 다음에 오는 텍스트를 kwon이 포함된 행 위에 삽입한다.

10) 종료 : q

q는 sed 프로그램을 종료합니다.

2행까지 출력한 후 sed 프로그램을 종료합니다.

 

2. 메타문자

^ : 행의 시작 지시자

ex) /^test/ : test로 시작하는 행

$ : 행의 끝 지시자

ex) /test$/ : test로 끝나는 행

. : 하나의 문자

ex) /t..t/ : t로 시작하는 문자 다음에 두 글자가 오고 t로 끝나는 문자열을 포함하는 행

* : 0개 혹은 임의의 임의 갯수

ex) /*test/ 0개 혹은 임의 갯수의 문자 후에 test로 끝나는 행

[] : [] 사이의 문자 집합

ex) /[Tt]est/ : Test, test

[^] : 문자 집합에 속하지 않는 한 문자와 대응

ex) /[^A-K]est/ : A ~ K를 제외한 문자와 est가 붙어있는 문자열

\(..\) : 태그로 문자열을 지정하는데 사용

ex) s/\(lov\)able/\1er/ : 지정한 lov를 tag 1로 저장한다. tag로 저장한 값은 \1을 사용한다 tag는 9개까지 가능하다.

& : 검색열을 저장하여 다음에 사용

ex) s/test/**&**/ : test를 **test**로 치환

\< : 단어의 시작 지시자

ex) /\<test/ : test로 시작하는 단어를 포함하는 행

\> : 단어의 끝 지시자

ex) /\>test/ : test로 끝나는 단어를 포함하는 행

x\{m\}/ : 문자 x를 m번 반복한다.

ex) /a\{5\} : a가 5번 반복

x\{m,\}/ : 문자 x를 최소 m번 반복한다.

ex) /a\{5,\}/ : a가 적어도 5번 반복

x\{m,n\} : 문자 x를 m회 이상 n회 이하 반복한다.

ex) /a\{5,10\}/ : a가 5회에서 10회 사이로 반복

'Linux' 카테고리의 다른 글

Awk 사용법  (0) 2013.10.22
Linux File System 추가  (0) 2013.10.20
Linux Hostname 변경  (0) 2013.10.19
CentOS 설치  (0) 2013.10.19