본문 바로가기
리눅스 생활 하고파

[리눅스 명령어] sed 기초부터 옵션까지 한 번에 정리

by 하고집 2026. 1. 21.
반응형

1. sed 란?

sed는 **스트림 에디터(Stream Editor)**로,
파일 내용을 직접 열지 않고 텍스트를 검색·치환·삭제·출력 제어할 수 있는 명령어다.

grep이 “찾기”, awk가 “가공”이라면,
sed는 “수정”에 특화된 명령어라고 이해하면 된다.

로그 치환, 설정 파일 값 변경, 배포 스크립트에서 매우 자주 사용된다.


2. 기본 사용 방법

 
sed '명령' 파일

또는 파이프와 함께 사용한다.

 
명령어 | sed '명령'

2.1 가장 기본적인 출력 예제

 
sed 'p' app.log
  • 모든 줄을 출력
  • 기본적으로 sed는 출력 기능을 내장하고 있음

3. sed의 핵심 개념 (중요)

3.1 sed는 기본적으로 “파일을 바꾸지 않는다”

 
sed 's/a/b/' file.txt
  • 화면 출력만 변경
  • 원본 파일은 그대로 유지

👉 실제 파일을 수정하려면 -i 옵션이 필요하다.


3.2 sed 명령 기본 구조

 
sed '주소 명령' 파일
  • 주소: 적용 범위 (줄 번호, 패턴 등)
  • 명령: 수행 동작 (s, d, p 등)

4. 자주 사용하는 sed 명령

4.1 s : 치환 (가장 중요)

 
sed 's/old/new/' file.txt
  • 한 줄에서 첫 번째 old만 new로 변경

모든 매칭 치환 (g 옵션)

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

4.2 특정 줄만 치환

 
sed '3s/old/new/' file.txt
 

3번째 줄에서만 치환


4.3 패턴이 있는 줄만 치환

 
sed '/ERROR/s/debug/info/' app.log

4.4 d : 줄 삭제

 
sed '/debug/d' app.log

debug가 포함된 줄 제거 (출력에서만)


4.5 p : 특정 줄만 출력

 
sed -n '5p' app.log
 

5번째 줄만 출력


 
sed -n '/ERROR/p' app.log

5. 자주 사용하는 옵션

5.1 -n : 자동 출력 비활성화

 
sed -n '/ERROR/p' app.log
  • 출력할 줄만 선택적으로 출력
  • p와 거의 항상 함께 사용

5.2 -i : 파일 직접 수정 (주의!)

 
sed -i 's/old/new/g' file.txt
  • 원본 파일이 바로 변경됨
  • 되돌릴 수 없음

👉 실무에서는 백업 옵션과 함께 사용 권장

 
sed -i.bak 's/old/new/g' file.txt

6. 옵션 조합 예제 (이건 꼭!)

6.1 로그에서 특정 문자열 치환

 
sed 's/ERROR/WARN/g' app.log

6.2 설정 파일 값 변경 (실무 핵심)

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

6.3 여러 파일 한 번에 수정

 
sed -i 's/foo/bar/g' *.conf

7. grep · awk · sed 조합 예제

7.1 특정 로그만 필터링 후 치환

 
grep "ERROR" app.log | sed 's/ERROR/ERR/'

7.2 컬럼 가공 후 치환

 
awk '{print $1, $3}' app.log | sed 's/,//g'

8. 초보자가 자주 하는 실수

8.1 -i 옵션을 테스트 없이 사용

 
sed -i 's/a/b/g' file.txt ❌
  • 바로 파일 변경
  • 실수 시 복구 불가

👉 먼저 -i 없이 결과 확인 후 적용


8.2 슬래시(/) 포함 문자열 치환

 
sed 's//home/user//tmp/' file.txt ❌

👉 해결: 다른 구분자 사용

 
sed 's|/home/user|/tmp|' file.txt

8.3 정규식 개념 없이 사용

  • . * ^ $ 의미를 모르면 예상과 다르게 동작할 수 있음

9. 실무에서 sed를 쓰는 타이밍

  • 설정 파일 값 일괄 변경
  • 로그 포맷 수정
  • 배포 스크립트 자동 치환
  • 다수 파일 내용 수정

10. 정리 한 줄 요약

  • sed는 텍스트를 직접 수정할 수 있는 도구다.
  • 이것만 기억하자:
  •  
    sed 's/old/new/g' 파일
반응형