我在特定文件中输入了这样的内容
#- seeds: "12.123.233.213,123.231.3.2"
- seeds: "12.12.21.21,43.435.54.54"
如您所见,种子包含两个连续的IP地址,因此我想更改文件中的IP地址。第一行不会被视为以“#”开头
所以为了做到这一点,我有这个:
val=' - seeds: "'
newSeed=${val}${ip1}','${ip2}'"' # ---> I'm creating the new seed
str=`grep "\s- seed" $file` # ---> finding matching character
echo $str # ---> it does print out the 2nd line
sed -i 's|${str}|${newSeed}|g' $file # --> now replace the matched string with new seed value
但它不会替换文件中的值。我在这里做错了什么?
答案 0 :(得分:2)
单引号不会扩展变量名称。使用双引号。
答案 1 :(得分:1)
bash需要双引号来扩展变量。
sed -i "s/${str}/${newSeed}/g"