sed (Stream Editor)는 텍스트 파일을 처리하는 강력한 유닉스/리눅스 명령어입니다. 주요 개념과 사용법을 설명해드리겠습니다:

  1. 기본 문법:
sed [옵션] '명령어' 파일명

  1. 주요 옵션:
-i  # 파일을 직접 수정 (in-place)
-n  # 자동 출력 억제
-e  # 여러 명령어 실행
-f  # 스크립트 파일에서 명령어 읽기

  1. 자주 사용되는 명령어:
# 치환 (가장 많이 사용)
sed 's/찾을문자열/바꿀문자열/' 파일명

# 예시
sed 's/hello/world/' test.txt  # hello를 world로 변경

# 특정 줄만 수정
sed '5s/hello/world/' test.txt  # 5번째 줄만 수정

# 모든 줄 수정
sed 's/hello/world/g' test.txt  # g 옵션으로 모든 매칭 변경

  1. 실제 사용 예시:
# Nginx 설정 파일에서 포트 주석 처리
sed -i 's/^server 127.0.0.1:13003;/#server 127.0.0.1:13003;/' nginx.conf

# 여러 줄 수정
sed -i 's/old/new/g' file.txt

# 특정 패턴 이후 줄 삭제
sed '/pattern/,$d' file.txt

  1. 정규식 사용:
# 공백으로 시작하는 줄 수정
sed 's/^\\s*server/#server/' nginx.conf

# 특정 포트 번호만 수정
sed 's/:13003;/:13004;/' nginx.conf

  1. 여러 명령어 조합:
# 여러 변경사항 적용
sed -i -e 's/old1/new1/g' -e 's/old2/new2/g' file.txt

  1. 백업 생성:
# 수정 전 백업 생성
sed -i.bak 's/old/new/g' file.txt

  1. 실제 Nginx 설정 수정 예시:
# 포트 주석 처리
sed -i 's/^\\s*server 127.0.0.1:13003;/#server 127.0.0.1:13003;/' nginx.conf

# 포트 주석 해제
sed -i 's/^#server 127.0.0.1:13003;/server 127.0.0.1:13003;/' nginx.conf

  1. 주의사항: