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

관련 정보