WIPIVERSE

sed (유틸리티)

sed는 Unix 계열 운영체제에서 사용되는 스트림 편집기(stream editor) 유틸리티이다. 입력 텍스트를 한 줄씩 순차적으로 처리하면서 지정된 편집 명령을 적용하고, 그 결과를 표준 출력으로 전달한다. 주로 정규표현식을 이용한 검색·치환, 삽입, 삭제와 같은 작업을 스크립트 형태로 자동화하는 데 활용된다.

특징

  • 비대화식: 파일이나 표준 입력을 대상으로 명령을 한 번에 적용한다.
  • 정규표현식 지원: POSIX 표준 정규표현식을 사용하여 복잡한 패턴 매칭이 가능하다.
  • 스크립트 가능: 명령들을 한 줄에 나열하거나 별도의 스크립트 파일에 정의하여 재사용할 수 있다.
  • POSIX 호환: POSIX 표준에 정의된 동작을 따르므로 다양한 Unix 계열 시스템에서 일관된 동작을 제공한다.

주요 명령

명령 설명
s/패턴/교체/ 첫 번째 매치된 문자열을 교체한다. g 플래그를 사용하면 행 전체에서 모두 교체한다.
d 현재 행을 삭제한다.
p 현재 행을 출력한다(보통 -n 옵션과 함께 사용).
a\텍스트 현재 행 뒤에 텍스트를 삽입한다.
i\텍스트 현재 행 앞에 텍스트를 삽입한다.
c\텍스트 현재 행을 텍스트로 교체한다.

사용 예

# 파일 내 모든 "foo"를 "bar"로 교체하고 결과를 출력
sed 's/foo/bar/g' input.txt

# 빈 행을 제거
sed '/^$/d' file.txt

# 3번째 행을 삭제
sed '3d' file.txt

역사

  • 개발 시기: 1970년대 초반, Unix 시스템에서 텍스트 스트림을 편집하기 위한 도구로 설계되었다.
  • 작성자: Bell Labs의 Lee E.에 의해 처음 구현된 것으로 알려져 있다.
  • 표준화: 1990년대 초 POSIX 표준에 포함돼 현재까지 지속적으로 유지·보수되고 있다.

구현 및 배포

  • 대부분의 Linux 배포판, macOS, BSD 계열에 기본 패키지로 포함된다.
  • GNU 프로젝트는 GNU sed를 제공하여 추가적인 기능과 향상된 성능을 지원한다.

관련 유틸리티

  • awk, perl, grep 등과 함께 텍스트 처리 파이프라인에서 흔히 조합된다.

참고: 위 내용은 일반적인 정보원(예: 공식 문서, POSIX 표준, 오픈소스 프로젝트 매뉴얼)에서 확인된 사항을 기반으로 작성하였다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기