sed는 변수로 대체합니다.

sed는 변수로 대체합니다.

일치하는 문자열을 다른 문자열로 바꾸려고 합니다. 이게 내가 가진 거야

ZKHOSTS="host1,host2,host3"
old_string="tsd.storage.hbase.zk_quorum*"
new_string="tsd.storage.hbase.zk_quorum = $ZKHOSTS"

sed -i '/$old_string/c\$new_string' /etc/opentsdb/opentsdb.conf

이는 작동하지 않는 예외입니다.

나도 따라해봤다

sed -i 's/$old_string/$new_string/g' /etc/opentsdb/opentsdb.conf

sed -i '/${old_string}/${new_string}/g' /etc/opentsdb/opentsdb.conf

여기서 내가 뭘 잘못하고 있는지 모르겠습니다.

답변1

예를 들어, 큰따옴표를 사용해야 합니다.

sed -i "s/$old_string/$new_string/g" /etc/opentsdb/opentsdb.conf

관련 정보