- p 명령 : 출력
sed '/north/p' datafile
-기본적으로 모든 줄을 출력하고, 패턴과 일치하는 줄을 한번 더 출력
sed -n '/north/p' datafile
- d 명령 : 삭제
1. sed란 무엇인가?
sed는 비 대화형 모드의 줄 단위 편집기라고 합니다.
vi 편집기처럼 직접 파일을 열어 고치지 않고 커맨드 창 또는 스크립트에서 동작을 하여 원하는 부분만 변경해준다는 특징이 있습니다.
2. sed의 특징
sed는 쉘 또는 스크립트에서 파이프(|)와 같이 사용될 수 있는 명령어입니다.
그리고 기본적으로 정규표현식이 사용가능하기 때문에 정규표현식을 알면 더 고급지게 sed를 이용할 수 있습니다.
주의할 점은 정규표현식을 사용하기 때문에 특수문자 앞에 역 슬래시(\,\)를 붙여주어야 합니다. \를 쓰면 리눅스에서는 역슬래시로 받아들입니다.
예) sed 's/\$man/man/g' test.txt
3. sed 옵션
옵션은 sed -e 의 형식으로 사용됩니다.
e: sed를 사용하였을 때 출력되는 값을 보여줍니다. 이 옵션은 기본값으로 굳이 안 써도 되지만 다중 명령어를 쓸 때는 반드시 써야 합니다.
예) sed /man/p -e /girl/p 파일명: man과 girl이 들어있는 줄을 한번 더 출력
i: 변경되는 값을 실제로 파일에 저장하는 옵션입니다. 이 옵션은 출력되는 값이 없이 바로 실제 파일에 적용되는 것이 특징입니다.
n: 특정 값이 들어간 줄만 출력해주는 기능입니다. 주로 p 명령어와 사용된다고 합니다.
f: 스크립트를 파일로부터 읽어들이며 명령어를 지정하는 명령어라고 하는데 저는 거의 사용하지 않습니다.
4. sed 명령어
d: 줄 삭제 명령어
a\: 해당 값이 있는 줄 다음에 입력. 그냥 밑에 줄 하나 삽입되는 정도로 알고 있으면 됩니다.
i\: 줄 앞에 첨가 명령어
c\: 해당 줄을 변경하는 명령어
g: 한 줄에 해당하는 값이 여러개 있을 경우에 모두 변경하는 명령어. 이 명령어를 해당 줄의 제일 앞에 내용만 변경됩니다.
p: 조건에 부합하는 라인을 출력하는 명령어(쉘 스크립트 작성 시 자주 사용.)--개인적인 생각임
s/orgin/change/: 앞에 것을 뒤에 것으로 변경하는 명령어
5. sed 사용방법
기본적으로 p,d,s 옵션들을 가장 많이 사용한다고 알려져있습니다.
세가지만 예시로 들겠습니다.
궁금하신 부분은 댓글로 남겨주세요~!
p
기능: 출력
sed p 파일명: 파일 전체 출력 (cat과 같은 기능)
sed 3p 파일명: 3번째 줄 한번 더 출력
sed 3,4p 파일명: 3,4번째 줄 한번 더 출력
sed /man/p 파일명: man이 포함된 줄 한번 더 출력
sed -n 3p 파일명: 3번째 줄만 출력(n이 붙으면 조건에 해당하는 줄만 출력됨)
d
기능: 삭제
sed 3d 파일명: 3번째 줄 삭제하고 나머지 줄 출력
sed /man/d 파일명: man이 포함된 줄 삭제 나머지 줄 출력
s
기능: 치환
sed 's/man/girl/g' 파일명: man을 girl로 치환
sed -n 's/man/girl/p' 파일명: man을 girl로 치환하고 치환된 줄을 출력
6. 조금 더 유용한 sed 이용방법
공백 줄 제거하기
sed '/^$/d' 파일명
모든 줄마다 공백을 추가하기
sed 'a\\' 파일명
주석이 처리된 줄 모두 삭제
sed '/^#/d' 파일명
[출처] 01. sed 옵션 정리|작성자 인트에스
'리눅스 관련 옵션 명령어' 카테고리의 다른 글
CentOS 버전별 명령어(service, chkconfig, 방화벽) (0) | 2019.12.14 |
---|---|
test 명령어 (0) | 2019.12.14 |
리눅스 cut명령어 (0) | 2019.12.11 |
파일 비교 (0) | 2019.12.05 |
쉘 스크립트 표준에러,입력/출력 (0) | 2019.12.04 |
댓글