sed (Stream Editor)는 텍스트 파일을 처리하는 강력한 유닉스/리눅스 명령어입니다. 주요 개념과 사용법을 설명해드리겠습니다:
sed [옵션] '명령어' 파일명
-i # 파일을 직접 수정 (in-place)
-n # 자동 출력 억제
-e # 여러 명령어 실행
-f # 스크립트 파일에서 명령어 읽기
# 치환 (가장 많이 사용)
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 옵션으로 모든 매칭 변경
# 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
# 공백으로 시작하는 줄 수정
sed 's/^\\s*server/#server/' nginx.conf
# 특정 포트 번호만 수정
sed 's/:13003;/:13004;/' nginx.conf
# 여러 변경사항 적용
sed -i -e 's/old1/new1/g' -e 's/old2/new2/g' file.txt
# 수정 전 백업 생성
sed -i.bak 's/old/new/g' file.txt
# 포트 주석 처리
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
i 옵션은 파일을 직접 수정하므로 주의 필요