sed (유틸리티)

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

sed
패러다임스크립트
설계자리 E. 맥마흔
발표일1974년 (46년 전)(1974)
구현 언어C
웹사이트www.gnu.org/software/sed/
영향을 받은 언어
ed
영향을 준 언어
Chomski, , AWK

sed(stream editor)는 유닉스에서 텍스트를 분해하거나 변환하기 위한 프로그램이다. sed는 벨 연구소리 E. 맥마흔이 1973년부터 1974년까지 개발하였고, 현재 유닉스 등의 여러가지 운영 체제에서 사용 가능하다.

역사[편집]

버전 7 유닉스에서 처음 등장한[1] sed는 데이터 파일의 명령 줄 처리를 위해 개발된 초기 유닉스 명령어들 가운데 하나이다. 대중적인 grep 명령어의 뒤를 자연스럽게 이을 정도로 발전하였다.[2] 원래는 치환을 목적으로 한 grep(g/re/p)의 상이형인 "g/re/s"이었다.[1] 개별 명령어를 위해 추가적인 특수 목적의 프로그램들이 등장할 것으로 예견하면서 맥마흔은 범용 목적의 라인 지향 스트림 편집기를 작성하였으며, 이것이 sed로 되었다.[2]

사용법[편집]

치환 명령어[편집]

다음의 예는 sed의 가장 일반적인 치환의 예이다. 이 사용법은 실제로 sed의 원래 동기와 부합한다:[2]

sed 's/regexp/replacement/g' inputFileName > outputFileName

기타 sed 명령어[편집]

치환 외에도 25개의 sed 명령을 사용하여 다른 형태의 단순한 처리가 가능하다. 이를테면, 다음의 경우 d 명령어를 사용하여 비어있거나 공백만 포함하는 줄을 삭제한다:

sed '/^ *$/d' inputFileName

필터로서의 사용[편집]

유닉스에서 sed는 파이프 안에 필터로 종종 사용된다:

generateData | sed 's/x/y/g'

즉, "generateData"와 같은 프로그램은 데이터를 만든 다음 x를 y로 대체하는 사소한 변경을 취한다.

  • 예 :
$ echo xyz xyz | sed 's/x/y/g'
yyz yyz

파일 기반 sed 스크립트[편집]

한 줄에 하나의 명령으로 여러 sed 명령을 subst.sed와 같은 스크립트 파일 안에 넣으면 유용할 수 있으며 -f 옵션을 사용하면 파일로부터 s/x/y/g와 같은 명령을 실행할 수 있다.

sed -f subst.sed inputFileName > outputFileName

수정 편집[편집]

GNU sed에 도입된 -i 옵션을 사용하면 파일의 직접 수정을 가능케 한다. 이를테면 다음과 같다:

sed -i 's/abc/def/' fileName

같이 보기[편집]

각주[편집]

  1. McIlroy, M. D. (1987). 《A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986》 (PDF) (기술 보고서). CSTR. Bell Labs. 139. 
  2. “On the Early History and Impact of Unix”. 2017년 9월 7일에 원본 문서에서 보존된 문서. 2017년 9월 12일에 확인함. A while later a demand arose for another special-purpose program, gres, for substitution: g/re/s. Lee McMahon undertook to write it, and soon foresaw that there would be no end to the family: g/re/d, g/re/a, etc. As his concept developed it became sed… 

외부 링크[편집]