| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- UNIX
- PackageManagement
- 명령어
- 정규표현식
- 사용자관리
- linuxcommand
- 쉘스크립트
- tcsh
- cups
- 유닉스명령어
- Solaris
- Unix명령어
- environment
- 자바스크립트
- 터미널
- terminal
- 리눅스명령어
- bash
- 파일시스템
- 시스템관리
- JavaScript
- sysadmin
- php
- js
- coreutils
- 리눅스
- shell
- linux
- 유닉스
- UnixCommand
Archives
- Today
- Total
ioerror
sed 사용법 및 옵션 - 비대화형 스트림 에디터를 활용한 텍스트 변환 및 편집 본문
반응형

sed - Stream Editor
sed는 텍스트 스트림을 한 줄씩 읽어와 지정한 규칙(스크립트)에 따라 편집, 치환, 삭제, 삽입 등의 작업을 수행하는 유닉스/리눅스의 대표적인 비대화형(Non-interactive) 라인 에디터이다. 파일 원본을 직접 열어 수정하지 않고도 입력 스트림이나 파일 내 특정 문자열을 빠르게 변환할 수 있으며, 다른 파이프라인 명령어와의 조합으로 로그 분석 및 데이터 정제 작업에 광범위하게 활용된다.
1. 명령어 용도
- 사용가능 OS, Shell: All UNIX/Linux linux apple, mac
- 대용량 텍스트 파일이나 로그 파일 내에서 특정 키워드를 일괄 변경하거나 원치 않는 패턴을 제거할 때 사용된다.
- 파이프라인(|)으로 전달받은 타 명령어의 출력 결과 중 필요 없는 줄을 삭제하거나 특정 포맷으로 가공하여 후속 처리에 넘길 때 활용된다.
2. 명령어 서식
sed [options] 'script' [input-file...]
3. 명령어 옵션
- 주요 옵션 소개 테이블
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -e script | 실행할 sed 편집 스크립트를 지정한다. 여러 개의 -e 옵션을 사용하여 다중 편집 규칙을 적용할 수 있다. | All UNIX/Linux |
| -f script-file | 실행할 sed 명령어들이 작성된 스크립트 파일 경로를 지정하여 실행한다. | All UNIX/Linux |
| -i[SUFFIX] | 파일을 직접 수정(In-place)한다. 백업 확장자(SUFFIX)를 지정하면 원본 파일의 백업본을 생성한다. | GNU Linux <i class="fab fa-linux"></i> BSD/macOS <i class="fab fa-apple"></i> |
| -n | 패턴 스페이스의 자동 출력을 억제하고, p 명령어 등 명시적으로 출력을 요청한 라인만 표시한다. | All UNIX/Linux |
| -E | 확장 정규 표현식(Extended Regular Expressions, ERE) 사용을 활성화한다. | GNU Linux <i class="fab fa-linux"></i> BSD/macOS <i class="fab fa-apple"></i> |
- 명령어 옵션 사용시 결과 예시
# 파일 내 특정 문자열 일괄 치환 (foo -> bar)
$ sed 's/foo/bar/g' example.txt
# bar is a common word in programming.
# This line contains bar and another bar.
# 5번째 줄부터 10번째 줄까지 지정 삭제 후 출력
$ sed '5,10d' server.log
# [Line 1..4 log entries]
# [Line 11+ log entries]
# 특정 패턴이 포함된 라인만 선택 출력 (-n 및 p 명령어 조합)
$ sed -n '/ERROR/p' app.log
# 2026-07-29 10:15:00 [ERROR] Database connection failed.
# 2026-07-29 10:18:22 [ERROR] Timeout waiting for service.
# 원본 파일 직접 수정 및 백업 파일 생성 (-i 옵션)
$ sed -i.bak 's/http:/https:/g' config.conf
# (출력 없음, config.conf 파일 직접 수정되며 config.conf.bak 백업 생성)
- s/foo/bar/g: s는 치환(substitute), foo는 찾을 패턴, bar는 바꿀 문자열, g는 행 전체 적용(global)을 의미한다.
- 5,10d: 5행부터 10행까지 범위 지정을 나타내며, d는 해당 라인 삭제(delete)를 수행한다.
- -n '/ERROR/p': -n으로 기본 출력을 끄고, /ERROR/ 패턴과 일치하는 행만 p(print)하여 출력한다.
- -i.bak: 파일 내 텍스트를 즉시 변경하고 원본을 .bak 확장자로 저장한다.
4. 명령어 특이사항(유의사항)
- GNU sed와 BSD sed(-i 옵션) 차이점: Linux(GNU)에서는 sed -i 's/a/b/g' file 처럼 백업 확장자 없이 사용할 수 있으나, macOS(BSD)에서는 백업 확장자를 비워두려면 sed -i '' 's/a/b/g' file 형태로 반드시 빈 문자열 ''을 인자로 넘겨주어야 하는 차이가 있어 스크립트 이식성 확보 시 주의가 필요하다.
- 구분자 변경 가능성: 슬래시(/)가 포함된 경로(예: /var/www/html)를 치환할 때 s// 대신 s#old#new#g 또는 s|old|new|g 와 같이 다른 특수문자를 구분자로 사용할 수 있어 가독성을 높일 수 있다.
- 메모리 효율성: 전체 파일을 메모리에 로드하지 않고 한 줄씩 읽어서 처리하므로, 대용량 로그 파일 편집 시에도 메모리 부족 없이 빠르게 작동한다.
관련 명령어들
- awk: 텍스트 패턴 검색 및 정교한 필드 기반 데이터 처리를 수행하는 다목적 프로그래밍 언어 도구이다.
- grep: 파일이나 표준 입력에서 특정 정규 표현식 패턴에 일치하는 라인을 검색하여 출력한다.
- cut: 각 라인에서 특정 필드나 바이트/문자 위치를 기준으로 잘라낸다.
- tr: 표준 입력의 문자들을 1:1로 치환하거나 삭제한다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| setenv 사용법 및 옵션 - C 셸 환경 변수 설정 및 조회 (0) | 2026.07.29 |
|---|---|
| set 사용법 및 옵션 - 쉘 환경 변수 및 실행 옵션 설정·조회 (0) | 2026.07.29 |
| screen 사용법 및 옵션 - 다중 터미널 세션 관리 및 백그라운드 작업 유지 (0) | 2026.07.29 |
| scp 사용법 및 옵션 - SSH 프로토콜을 이용한 원격 파일 안전 복사 (0) | 2026.07.29 |
| rwho 사용법 및 옵션 - 네트워크 내 원격 호스트에 로그인한 사용자 목록 조회 (0) | 2026.07.29 |
Comments