> 텍스트 처리 및 검색 > sed

sed 명령어 가이드: 스트림 에디터의 활용

`sed` 명령어(stream editor)는 텍스트 스트림(파일 또는 파이프를 통해 전달되는 입력)을 편집하는 데 사용되는 강력한 비대화형 텍스트 처리 도구입니다. 파일을 열지 않고도 텍스트를 검색, 교체, 삭제하거나 삽입하는 등의 작업을 효율적으로 수행할 수 있습니다. 쉘 스크립트에서 자동화된 텍스트 변환에 필수적으로 사용됩니다. 이 가이드를 통해 `sed` 명령어의 기본 사용법과 정규 표현식을 활용한 고급 기능을 익혀보세요.

sed 개요

`sed`는 입력 스트림에서 한 줄씩 읽어와 지정된 규칙(스크립트)에 따라 처리한 후 결과를 표준 출력으로 보냅니다. 원본 파일은 기본적으로 변경되지 않으며, 변경된 내용을 파일에 저장하려면 리다이렉션(`>`)을 사용하거나 `-i` 옵션을 사용해야 합니다.

sed의 주요 역할

`sed` 명령어는 주로 다음과 같은 목적으로 사용됩니다:

주요 활용 분야

  • 텍스트 교체/치환: 파일 내의 특정 문자열을 다른 문자열로 바꿉니다. (가장 흔한 용도)
  • 줄 삭제/추가: 특정 패턴을 포함하는 줄을 삭제하거나, 특정 위치에 새로운 줄을 삽입합니다.
  • 패턴 매칭 및 출력: 특정 패턴에 일치하는 줄만 출력하거나, 특정 범위의 줄만 처리합니다.
  • 파일 포맷 변경: 텍스트 파일의 형식을 변환하거나 데이터를 재정렬합니다.
  • 스크립트 자동화: 대량의 텍스트 파일을 일괄 처리하는 쉘 스크립트에서 핵심적인 역할을 합니다.

sed의 기본 구조

`sed`의 기본 명령어 구조는 `sed [OPTIONS] '스크립트' [INPUT_FILE...]` 입니다. 여기서 '스크립트'는 `[주소]명령어[인자]` 형태를 가지며, 가장 중요한 명령어는 `s` (substitute, 치환)입니다.

주요 sed 명령어 옵션

`sed` 명령어는 입력 처리 방식, 스크립트 지정, 출력 제어 등 다양한 옵션을 제공하여 유연한 텍스트 편집이 가능합니다.

1. 스크립트 및 파일 처리 옵션

2. 치환(s) 명령어 플래그

3. 기타 유용한 명령어

생성된 명령어:

명령어를 조합해 보세요.

설명:

`sed` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

`sed` 명령어의 다양한 활용 예시들을 통해 텍스트 파일의 내용을 효과적으로 검색, 교체, 삭제하는 방법을 익혀보세요.

파일 내 모든 'old'를 'new'로 치환

sed 's/old/new/g' example.txt

`example.txt` 파일에서 'old'라는 모든 단어를 'new'로 변경하고 결과를 표준 출력으로 표시합니다.

원본 파일을 직접 수정하며 문자열 치환

sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf

`config.conf` 파일에서 'DEBUG=true'를 'DEBUG=false'로 직접 변경하고, 원본 파일의 백업본(`.bak` 확장자)을 생성합니다.

특정 줄 번호의 줄 삭제

sed '5d' log.txt

`log.txt` 파일에서 5번째 줄을 삭제하고 결과를 출력합니다.

범위 내 줄 삭제

sed '10,20d' document.txt

`document.txt` 파일에서 10번째 줄부터 20번째 줄까지의 내용을 삭제하고 출력합니다.

특정 패턴이 있는 줄 삭제

sed '/WARNING/d' errors.log

`errors.log` 파일에서 'WARNING'이라는 단어가 포함된 모든 줄을 삭제하고 결과를 출력합니다.

파일 내용에 헤더 줄 삽입

sed '1i\Name,Age,City' data.csv

`data.csv` 파일의 첫 번째 줄 위에 새로운 헤더 줄을 삽입합니다.

빈 줄 삭제

sed '/^$/d' text.txt

`text.txt` 파일에서 모든 빈 줄을 삭제합니다. `^$`는 빈 줄을 의미하는 정규 표현식입니다.


동일 카테고리 명령어