sed란?
sed는 stream editor를 줄인 말로, 비대화형 모드의 줄 단위 에디터이다. 표준 입력 또는 파일로부터 텍스트를 입력받아 주어진 라인(행)들에 대해 한 번에 한 라인씩 어떤 처리를 한 다음, 그 결과를 표준 출력이나 파일로 보낸다.
sed는 주어진 주소 범위에 대해 입력의 어떤 줄을 처리할 것인지 결정한다.
sed 편집기는 적용된 내용을 출력 할 뿐 원본파일을 손상시키지 않는다. 리다이렉션을 이용하여 편집 결과를 파일로 저장하여 확인할 수 있다.
연산자 |
이름 |
설명 |
예제 |
[주소범위]/p |
|
[주어진 주소범위]를 출력 |
#sed '1,5p' test.txt =>test.txt 파일의 1부터 5행까지 출력 |
[주소범위]/d |
delete |
[주어진 주소범위]를 삭제 |
#sed '6d' test.txt =>test.txt에서 6번째 행을 삭제 |
[pattern]/d |
delete |
[pattern]을 포함한 행을 삭제 |
#sed '/abc/d' test.txt =>test.txt에서 abc가 포함된 행을 삭제 |
s/[pattern1]/[pattern2]/ |
substitute |
한 라인에서 처음 나타나는 [pattern1]을 [pattern2]로 치환 |
#sed 's/abc/xyz/' test.txt =>test.txt에서 abc 문자를 xyz로 치환 |
sed 사용에 유용한 정규표현식
메타문자 |
의미 |
예제 |
설명 |
^ |
행의 처음 |
/^hello/ |
hello로 시작하는 행 |
$ |
행의 끝 |
/hello$/ |
hello로 끝나는 행 |
. |
하나의 문자와 대응 |
/h...o/ |
h다음에 세 글자 오고 o로 끝나는 문자열을 포함하는 행 |
* |
0개 혹은 임의의 갯수 |
/*hello/ |
0개 혹은 임의 갯수의 공백 문자 후에 hello로 끝나는 문자열을 포함하는 행 |
[] |
[]사이의 문자 집합중 하나와 대응 |
/[Hh]ello/ |
Hello 또는 hello를 포함한 행 |
[^] |
문자 집합에 속하지 않는 한 문자와 대응 |
/[^a-g]ello/ |
a와g 사이의 범위에 포함되지 않는 한 문자와 ello가 붙어있는 문자열 |
posted by 김소령
'3. OS이야기 > 01. Administration' 카테고리의 다른 글
Linux version 확인 방법 (0) | 2014.09.30 |
---|---|
[Linux] 리눅스 shutdown 명령어 사용법 및 옵션 (0) | 2014.09.30 |
Linux에서 kill 명령어로 안전하게 프로세스 종료 하는 방법 (1) | 2014.08.31 |
rsync 설치,설정 (0) | 2014.08.31 |
Linux - SSH root 계정 로그인 막기 (0) | 2014.08.30 |