Notice
Recent Posts
Recent Comments
준호씨의 블로그
쉘 커맨드라인 명령어(sed)로 텍스트 본문 문자 바꾸기. 설정을 손쉽게 바꾸기 본문
반응형
apache httpd.conf 의 특정 내용을 바꾸고 싶다거나, sendmail.cf 의 특정 설정만 바꾼다던지 하고 싶을 때가 있다.
설정파일은 텍스트 파일이기 때문에 sed 커맨드를 이용하면 손쉽게 바꿀 수 있다.
아래와 같이 하면 some.conf 라는 파일의 DebugLevel=old 가 DebugLevel=new 로 바뀌게 된다.
sed -i 's/DebugLevel=old/DebugLevel=new/g' some.conf
- sed 는 Stream EDitor 라는 유틸이다.
- -i 옵션은 in-place 의 의미로, 원본 파일에다가 바로 수정을 하겠다는 의미이다.
- s/old/new/g 에서
- s 는 substitute 라고 내용을 바꿀 때 쓰는 커맨드이다.
- old 는 찾으려는 원본 문자인데, 정규표현식으로 작성한다.
- new 바뀔 문자이다.
- g 는 global 의 의미로 전체 내용을 대상으로 한다는 의미이다. old 가 여러개가 있으면 모두 다 바꾼다는 말이다.
- some.conf 는 텍스트 파일명이다.
부연설명
설정을 손쉽게 바꾼다는게 이상하게 들릴 수 있다. vim 에서도 :%s/old/new/g 로 바꿀 수도 있고, 바꿀 갯수가 몇개 안되면 직접 수정할 수도 있다.
그런데 만약 파일이 여러개라면? 서버가 여러대라면? 하나하나 들어가서 바꾸기도 번거롭고 직접 타이핑을 하다보면 오타를 낼 수도 있다.
커맨드는 한번만 치고 ansible 같은 유틸로 여러 서버에 한번에 명령어를 날린다거나, 파일명만 바꿔가며 여러 파일들의 설정을 동일하게 수정 해 줄 수 있다.
참고
반응형
'IT이야기' 카테고리의 다른 글
osx - 디스크 정리 관련 (0) | 2018.08.01 |
---|---|
osx - 맥에서 Windows 부팅/설치 USB 만들기. macOS High Sierra 10.13.5 (0) | 2018.07.31 |
Paragon NTFS 15 제거 하는 방법 (0) | 2018.07.05 |
Lightning to USB 3 Adapter. 아이폰과 오디오 인터페이스 연결하기 (6) | 2018.07.05 |
유튜브 플레이리스트를 블로그에 삽입 (embed) 하기 (0) | 2018.06.06 |
Comments