다음은 파일에서 일치하는 키 값을 바꾸는 방법에 대한 좋은 예입니다.
str="192.2.34.40:2181,192.2.34.34:2181,192.2.34.32:2181,192.2.34.52:2181,192.2.34.53:2181"
sed -i "s~^[[:space:]]*zookeeper\.connect.*~zookeeper.connect=$str~" /opt/server.properties
예
more /opt/server.properties
zookeeper.connect=192.2.34.40:2181,192.2.34.34:2181,192.2.34.32:2181
sed 명령을 실행한 후 우리는 다음을 얻습니다.
more /opt/server.properties
zookeeper.connect=192.2.34.40:2181,192.2.34.34:2181,192.2.34.32:2181,192.2.34.52:2181,192.2.34.53:2181
하지만 값이 올바르게 대체되었는지 확인할 수 있나요?
물론 유효성 검사를 추가할 수도 있습니다.
sed -i "s~^[[:space:]]*zookeeper\.connect.*~zookeeper.connect=$str~" /opt/server.properties
[[ $? -ne 0 ]] && echo "sed failed" && exit 1
그러나 0을 제공하는 표준 출력이 모든 오류를 포함하는지 확실하지 않습니다.