리눅스 sed 사용법


  • 텍스트 처리를 위한 유틸리티는 대표적으로 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를 ‘‘로 변경(삭제)

카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)

PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다

이 글이 도움이 되셨거나 다양한 의견이 있다면 댓글 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza