sed(Stream Editor)
- vi 편집기처럼 원하는 내용 추출, 문자열 치환 등 다양한 작업을 수행할 수 있음
- 1개의 라인씩 입력 라인을 읽어들여 표준출력으로 출력함
- 홀드 버퍼(데이터의 원본을 가지고 있는 곳), 패턴 버퍼(조건에 따라 가공된 데이터 저장) 두가지 버퍼를 가지고 있음
ed vs sed
- sed의 경우 라인들을 하나씩 읽고, 수정하고, 출력하기 때문에 기억장치 안의 버퍼를 사용하지 않음
- 버퍼를 사용하지 않으면 파일의 크기에 제한 없이 작업을 할 수 있음
- ed와 같이 버퍼를 사용하는 경우는 버퍼의 크기보다 큰 파일은 처리할 수 없으며 대개 버퍼의 크기는 1MB
- 따라서 sed는 아주 큰 파일을 처리할 때 주로 사용됨
사용법
# 특정 패턴을 적용하여 데이터 추출
sed [패턴] [파일명]
cat [파일명] | sed [패턴]
# sed 중복 적용
cat [파일명] | sed [패턴] | sed [패턴] | sed [패턴]
명령어 | 설명 |
sed '/a/d' test.txt | a가 포함된 행 삭제 |
sed 's/a//g' test.txt | a가 포함된 행에서 a만 지우고 출력 |
sed 's/ //g' test.txt | 행에서 공백(space) 제거 |
sed '/^$/d' test.txt | space 조차 없는 빈 행 삭제 |
sed '/^\s*$/d' test.txt | space만 있는 빈 행 삭제 |
sed 'a\\' test.txt | 행마다 위, 아래 공백인 행 추가 |
sed 's/a. *b//' | 각 행에서 a~b까지 전체 내용 삭제 후 출력 |
sed 's/\[//g' | 대괄호 '['삭제 |
'프로그래밍 > Linux' 카테고리의 다른 글
mDNS / DNS-SD 란? Avahi란? (0) | 2024.08.02 |
---|---|
[Linux] 파일 이름, 내용 일괄변경 (0) | 2024.04.03 |
[Linux] grep 정리 (0) | 2024.03.27 |
[Linux] 권한 설정 정리 (chown, chmod, chgrp) (0) | 2024.03.20 |