sed 명령어

리눅스 sed 명령어 완벽 가이드: 텍스트 처리를 자동화하는 스트림 에디터

리눅스나 유닉스 환경에서 대량의 로그 파일을 수정하거나, 설정 파일 내의 특정 문자열을 일괄 변경해야 할 때 여러분은 어떤 도구를 사용하시나요? 마우스로 일일이 드래그하여 수정하는 것은 불가능에 가깝습니다. 이때 구원투수로 등장하는 것이 바로 sed(Stream Editor)입니다. sed는 파일을 직접 열지 않고도 명령행에서 텍스트를 추출, 치환, 삭제할 수 있는 강력한 도구로, 서버 자동화 스크립트의 핵심 요소입니다.


1. sed 명령어란 무엇인가?

sed는 'Stream Editor'의 약자로, 텍스트 스트림을 입력받아 지정된 규칙에 따라 편집한 후 결과를 출력합니다. 원본 파일을 직접 수정하기보다는 표준 출력(Standard Output)으로 결과를 보여주는 것이 기본 동작 방식이기에 안전한 테스트가 가능하며, -i 옵션을 통해 원본 파일에 직접 변경 사항을 적용할 수도 있습니다.

2. 주요 옵션 및 동작 방식 비교

sed를 제대로 활용하기 위해서는 상황에 맞는 옵션 선택이 필수적입니다. 가장 자주 사용되는 옵션들을 정리해 드립니다.

[표 1] sed 명령어 주요 옵션 상세 비교
옵션 설명 활용 시나리오
-e 다중 편집 명령을 실행할 때 사용 한 번의 실행으로 치환과 삭제를 동시 진행
-f 스크립트 파일에 저장된 명령을 실행 복잡한 정규표현식 규칙을 재사용할 때
-i 원본 파일을 직접 수정 (In-place) 설정 파일의 특정 값을 영구적으로 변경할 때
-n 자동 출력을 억제 (p 명령과 함께 사용) 특정 행만 골라서 화면에 출력하고 싶을 때

3. 실무 활용 빈도가 높은 sed 명령어 예제

① 문자열 치환 (Substitution)

sed 's/old/new/' file.txt : 각 행의 첫 번째 'old'를 'new'로 치환
sed 's/old/new/g' file.txt : 행 전체(global)의 모든 'old'를 'new'로 치환

② 특정 행 삭제 (Delete)

sed '3d' file.txt : 3번째 행을 삭제
sed '/pattern/d' file.txt : 'pattern'이 포함된 모든 행을 삭제

③ 텍스트 추가 및 삽입 (Append/Insert)

sed '1i Hello' file.txt : 1행 앞(insert)에 'Hello' 추가
sed '$a End of File' file.txt : 마지막 행($) 뒤(append)에 문구 추가

💡 정리하며: sed를 더 스마트하게 쓰는 방법

sed 명령어는 단순한 치환을 넘어 정규표현식(Regex)과 결합할 때 그 진가가 발휘됩니다. 처음에는 복잡해 보일 수 있지만, s/패턴/치환문자/g라는 기본 공식만 기억해도 실무 업무의 70% 이상을 해결할 수 있습니다. 운영 서버에 적용하기 전에는 반드시 -i 옵션 없이 테스트하여 출력 결과를 확인하는 습관을 들이세요!

다음 단계로 무엇을 해볼까요? 궁금한 특정 리눅스 명령어가 있다면 댓글로 남겨주세요. 이 포스팅이 도움이 되었다면 즐겨찾기(Ctrl+D) 부탁드립니다!

[표 2] sed 필수 커맨드 체크리스트
명령어 구분 단축키 주요 기능
치환 s 패턴을 찾아 다른 문자로 교체
삭제 d 특정 행이나 패턴이 포함된 행 제거
출력 p 패턴 스페이스의 내용을 출력 (-n과 조합)
추가 a / i 현재 행 다음(a) 혹은 이전(i)에 텍스트 삽입

댓글 쓰기

다음 이전