2017-04-06 3 views
-1

몇 개의 설정 파일이 있고 스크립트를 사용하여 특정 변수 값을 편집하려고합니다. 나는 이것을하기 위해 sed/awk를 보았습니다. 다음 구성 예제에서 다음 sed 명령을 사용해 보았습니다. 내 문제는 주석 처리 된 섹션과 실제 섹션을 변경합니다. N 번째 발생을 할 수 있지만 이음새는 전체 파일이 아닌 해당 줄에만 적용된다는 것을 알았습니다.설정 파일에서 변수 값을 변경하기 위해 sed/awk 사용

명령 :

sudo sed -i 's/Server=.*/Server=10.10.1.206/' /etc/zabbix/zabbix_agentd.conf 

파일

### Option: Server 
#  List of comma delimited IP addresses (or hostnames) of Zabbix servers. 
#  Incoming connections will be accepted only from the hosts listed here. 
#  If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. 
# 
# Mandatory: no 
# Default: 
# Server=10.10.1.206 

Server=10.10.1.206 

답변

2

Server

sudo sed -i 's/^Server=.*/Server=10.10.1.206/' /etc/zabbix/zabbix_agentd.conf 

와 앵커에 대한 지원을을 시작 ^이 라인에 대체 정규식 앵커 추가및 $시작의 모든 POSIX 호환 sed 버전에서 사용할 수 있습니다.

regular-expressions 페이지에서 발췌,

앵커

[..] 앵커는 모든 문자를 일치하지 않습니다. 그들은 위치와 일치합니다. 문자열의 시작 ^ 일치 한 문자열의 끝에 일치 $. [...]


관련 문제