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 |