1 개념[ | ]
- sed, "stream editor"
- 세드, "스트림 에디터"
- 텍스트 변환 유틸
- 줄단위(\n) 처리를 함
- 줄단위 처리가 기본이지만 메모리를 이용한 여러줄 처리도 가능함
2 구조[ | ]
sed 는 pattern space와 hold space 로 이뤄져 있음
2.1 pattern space[ | ]
- 입력 스트림을 통해 한 줄 씩 받아 pattern space 저장됨
- 수정 명령, 프린트 명령들을 받아 처리되는 부분임
2.2 hold space[ | ]
- hold space는 임시 저장소 역할을 함.
- 수정 명령 등의 영향을 받지 않아 pattern space 에서 처리된 내용을 hold space에 옮겨 온 후 필요한 시점에 다시 가져올 수 있음
3 문법[ | ]
Bash
Copy
sed [옵션] [스크립트] [파일명] ...
4 예시[ | ]
4.1 기본 출력[ | ]
Console
Copy
$ echo -e "aaa\nbbb\nccc\nddd" | sed ""
aaa
bbb
ccc
ddd
- → sed는 echo 출력 값을 받아 pattern space 에서의 값을 단순 출력함
4.2 줄 삭제[ | ]
Console
Copy
$ echo -e "aaa\nbbb\nccc\nddd" | sed "2d"
aaa
ccc
ddd
- → d를 사용하여 줄삭제. 여기에서는 2d이므로 2번째 줄 삭제
5 응용[ | ]
5.1 문자 치환[ | ]
- 파일 내 문자열 치환
Bash
Copy
sed -i "s/변경전문자열/변경후문자열/g" [파일]
- →
-i
옵션을 추가하면 화면에 결과를 출력하는 대신 선택된 파일의 내용을 변경함 - → 문자 치환은
s/regexp/replacement/[flag]
의 형태를 가짐
6 실습[ | ]
Console
Copy
[root@zetawiki ~]# cat /etc/php.ini | grep ^short_open_tag
short_open_tag = Off
Console
Copy
[root@zetawiki ~]# cp /etc/php.ini /etc/php.ini.old
[root@zetawiki ~]# sed -i "s/short_open_tag = Off/short_open_tag = On/g" /etc/php.ini
[root@zetawiki ~]# diff /etc/php.ini.old /etc/php.ini
229c229
< short_open_tag = Off
---
> short_open_tag = On
7 같이 보기[ | ]
- PHP 짧은 태그 허용하기
- 리눅스 파일 특정 행 보기
- 리눅스 파일 특정 행 내용 교체
- 리눅스 sed 구간 삭제
- 리눅스 tr
- 함수 str_replace()
- 함수 preg_replace()
8 참고[ | ]
편집자 John Jeong Jmnote Jmnote bot 175.197.170.168
로그인하시면 댓글을 쓸 수 있습니다.
- 분류 댓글:
- Sed (2)
리눅스 파일 특정 행 보기 ― 바가누르바기수리눅스 파일 특정 행 보기 ― Jmnote