"Sed (유틸리티)"의 두 판 사이의 차이

1,621 바이트 추가됨 ,  3년 전
편집 요약 없음
}}
</ref> 원래는 치환을 목적으로 한 grep(g/re/p)의 상이형인 "g/re/s"이었다.<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |authorlink1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</ref> 개별 명령어를 위해 추가적인 특수 목적의 프로그램들이 등장할 것으로 예견하면서 McMahon은 범용 목적의 라인 지향 스트림 편집기를 작성하였으며, 이것이 sed로 되었다.<ref name=early_history />
 
== 사용법 ==
=== 치환 명령어 ===
다음의 예는 sed의 가장 일반적인 치환의 예이다. 이 사용법은 실제로 sed의 원래 동기와 부합한다:<ref name=early_history />
<source lang=bash>
sed 's/regexp/replacement/g' inputFileName > outputFileName
</source>
 
=== 기타 sed 명령어 ===
치환 외에도 25개의 sed 명령을 사용하여 다른 형태의 단순한 처리가 가능하다. 이를테면, 다음의 경우 d 명령어를 사용하여 비어있거나 공백만 포함하는 줄을 삭제한다:
<source lang=bash>
sed '/^ *$/d' inputFileName
</source>
 
=== 필터로서의 사용 ===
유닉스에서 sed는 [[파이프 (유닉스)|파이프]] 안에 [[필터 (소프트웨어)|필터]]로 종종 사용된다:
<source lang=bash>
generateData | sed 's/x/y/g'
</source>
즉, "generateData"와 같은 프로그램은 데이터를 만든 다음 x를 y로 대체하는 사소한 변경을 취한다.
* 예 :
<source lang=console>
$ echo xyz xyz | sed 's/x/y/g'
yyz yyz
</source>
 
=== 파일 기반 sed 스크립트 ===
한 줄에 하나의 명령으로 여러 sed 명령을 <code>subst.sed</code>와 같은 스크립트 파일 안에 넣으면 유용할 수 있으며 <code>-f</code> 옵션을 사용하면 파일로부터 <code>s/x/y/g</code>와 같은 명령을 실행할 수 있다.
<source lang=bash>
sed -f subst.sed inputFileName > outputFileName
</source>
 
=== 수정 편집 ===
GNU sed에 도입된 <code>-i</code> 옵션을 사용하면 파일의 직접 수정을 가능케 한다. 이를테면 다음과 같다:
<source lang=bash>
sed -i 's/abc/def/' fileName
</source>
 
== 같이 보기 ==