리눅스 sed 사용법
in Development on Linux
- 텍스트 처리를 위한 유틸리티는 대표적으로
sed
(stream editor)와awk
가 있습니다. 이번엔sed
에 대해 학습해보려고 합니다 - 정규 표현식을 사용하고, 기본 입출력은 표준 입력과 출력을 사용합니다. 파이프를 통해 한쪽의 출력을 다른 쪽으로 넘길 수 있습니다
- 주어진 주소 범위에 대해 입력의 어떤 줄을 처리할 것인지 결정합니다. 주소 범위에는 라인 번호 또는 패턴을 사용할 수 잇습니다. 예를 들어
5d
라고 하면 다섯 번째 라인을 삭제하라는 것이며windows/d
는 “windows”를 포함하는 모든 라일을 삭제하라는 의미입니다
sed 동작 원리
- sed 스트림 에디터는 한번에 하나의 파일 또는 하나의 입력으로부터 한 라인만 처리하고 모니터로 출력합니다. 이 명령은
vi
에디터에서 사용 가능하며, 저장된 라인은 패턴 공간이라고 부르는 임시 버퍼에서 처리합니다 -임시 버퍼에 있는 라인의 처리가 한번 끝나면 임시 버퍼에 있는 라인은 모니터로 보내집니다. 라인이 처리된 다음 임시 버퍼에서 라인은 제거되고 다음 라인이 임시 버퍼로 읽혀지고 처리되고 출력됩니다
예제
8d
- 입력의 8번째 줄을 삭제
/^$/d
- 빈 줄을 모두 삭제
1,/%$/d
- 첫 줄부터 처음 나타내는 빈 줄까지 삭제
/Jones/p
- “Jones”를 포함하는 줄만 출력 (-n 옵션 사용)
s/GUI//g
- “GUI”가 나오는 줄에서 GUI를 ‘‘로 변경(삭제)
카일스쿨 유튜브 채널을 만들었습니다. 데이터 분석, 커리어에 대한 내용을 공유드릴 예정입니다.
PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다
이 글이 도움이 되셨거나 의견이 있으시면 댓글 남겨주셔요.