Linux – sed 명령 사용법

By | 2024년 8월 28일
Table of Contents

Linux – sed 명령 사용법

설정파일과 같은 텍스트 파일에 일부 텍스트를 수정 또는 추출하는데 편한 기능을 제공합니다.

샘플 파일

cat config.cfg
# API_HOST          https://3.37.55.178
API_HOST            https://192.168.10.100
API_PORT            8080

텍스트 추출

아래 명령으로 서버 아이피를 추출합니다.

sed -ne "s/\(^API_HOST[ \t]\+https:\/\/\)\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)/\2/p" "config.cfg"

-E 옵션을 사용하지 않는 경우 대부분의 특수문자를 \ 로 escape 처리 해주어야 합니다.

(.......) 부분이 매칭되는 부분으로 \1, \2 와 같이 변수로 사용할 수 있습니다.

s/\(........\)\(........\)/\2/p

복잡한 부분을 간략화 해보면 위와 같습니다.

텍스트 변경

-E 옵션을 사용하는 경우 \ 로 escape 처리하지 않습니다.

sed -i -E "s/(^API_HOST[ \t]+https:\/\/)[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/\1111.222.333.444/" "config.cfg"

cat config.cfg
##API_HOST          https://3.37.55.178
API_HOST            https://111.222.333.444
API_PORT            8080

^API_HOST 와 같이 라인의 첫부분을 변경하도록 했으므로,
코멘트 처리한 라인은 변경되지 않습니다.

sed -i "s/111.222.333.444/111.111.111.111/g" "config.cfg"

cat config.cfg
##API_HOST          https://3.37.55.178
API_HOST            https://111.111.111.111
API_PORT            8080

검색해야할 텍스트를 이미 알고 있다면 정규식 없이 바로 치환할 수 있습니다.

답글 남기기