명령어/Linux

[리눅스] sed 문자열 치환 파일 편집 줄 삭제

jykim23 2026. 7. 9. 10:34
반응형

부제: 파일을 열지 않고 문자열을 바꾸거나 특정 줄만 뽑기

sed 's/ERROR/ERR/' app.log      # 줄마다 첫 매치만 치환
sed 's/ERROR/ERR/g' app.log     # 한 줄의 여러 개도 전부 (g)
sed -n '2,5p' app.log           # 2~5번째 줄만 출력
$ sed -n '2,4p' app.log
2026-07-08 10:00:02 WARN  request id=2 path=/upload status=413
2026-07-08 10:00:03 ERROR request id=3 path=/chat status=500
2026-07-08 10:00:04 INFO  request id=4 path=/chat status=200

sed는 스트림 편집기다. s/찾을것/바꿀것/로 치환하고, -n '범위p'로 특정 줄만 뽑는다.
기본은 화면으로만 출력하고 원본 파일은 건드리지 않는다.

이렇게도 쓴다

파일을 직접 고친다(-i, 되돌릴 수 없으니 주의).

sed -i 's/localhost/127.0.0.1/g' config.ini

 

고치기 전에 백업을 남기고 수정한다(-i.bak).

sed -i.bak 's/8080/80/g' nginx.conf

 

주석 줄(#으로 시작)을 모두 지운다.

sed '/^#/d' config.ini

 

로그의 특정 줄 범위만 뽑아 본다.

sed -n '100,120p' app.log

 

빈 줄을 모두 지운다.

sed '/^$/d' file.txt
반응형