SED(Stream Editor)
VI Editor와의 차이
주의할 점
SED 사용법
sed -[option][file name]
Command | 설명 |
---|---|
-e | 왼쪽으로 커서 이동 |
-f | 조건식 스크립트가 기재된 파일을 지정 |
-n | 패턴이 일치하는 라인만 출력 |
-r | 확장 정규표현을 사용한 스크립트를 사용 |
-i | 수정한 내용으로 파일 덮어쓰기 |
SUB
Command | 설명
|:----:|:----:|
a\ |현재 행에 하나 이상의 새로운 행 추가
c\ |현재 행의 내용을 새로운 내용으로 교체
i\ |현재 행의 위에 텍스트 삽입
d |행 삭제
p |행 출력
q | sed종료
r | 파일로부터 행 읽어 오기
s | 문자열 치환
! | 선택된 행을 제외한 나머지 전체 행에 명령어 적용
l | 출력되지 않는 특수문자를 출력
치환 플래그(s랑 같이 사용)
Command | 설명 |
---|---|
g | 치환이 행 전체에 대해 이루어짐 |
p | 행 출력 |
w | 파일에 쓰기 |
x | 홀드 스페이스와 패턴 스페이스의 내용 바꿈 |
y | 한 문자를 다른 문자로 변경 |
메타
Command | 설명 |
---|---|
^ | 치환이 행 전체에 대해 이루어짐 |
$ | 행 출력 |
. | 파일에 쓰기 |
* | 홀드 스페이스와 패턴 스페이스의 내용 바꿈 |
ㅣ | OR |
{5} | 직전의 문자가 5번만 나옴 |
{5~10} | 직전의 문자가 5~10번만 나옴 |
SED 이용법
# sed '/^$/d' test01
>> test01에 공백 제거
# sed 'a\\' test01
>> test01의 모든 줄마다 공백 추가
# sed '/^#/d' test01
>> test01에 주석 처리되어있는 줄 삭제
# sed -n '10,$p' test01
>> test01에 10번째 부터 끝까지 출력
# sed '5,10d' test01 > test02
>> test01의 5~10번째 행 삭제 후 test02로 저장
# sed -e 's/google/코리아/g' test01
>> test01파일에 있는 모든 google 문자를 코리아로 치환
# sed -i '$a구글코리아' test01
>> test01파일에 마지막 구글코리아를 추가하고 원본 덮어쓰기
# sed -e 's/<tab>/<space>g' test01
>> test01파일에서 탭을 스페이스로 변환
# sed -e 's/<space>/<tab>g' test01
>> test01파일에서 스페이스를 탭으로 변환