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` 파일에서 모든 빈 줄을 삭제합니다. `^$`는 빈 줄을 의미하는 정규 표현식입니다.