“sed的”文件

问题描述:

不更换匹配序列我有这样的投入在一个特定的文件“sed的”文件

#- seeds: "12.123.233.213,123.231.3.2" 
    - seeds: "12.12.21.21,43.435.54.54" 

正如你所看到的是,种子包含两个连续的IP地址,所以我想改变IP地址文件。 1号线将不被考虑,因为它以“#”

所以开始这样做,我有这样的:

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 

但它不会替换文件中的值。我在这里做错了什么?

单引号不扩展变量名称。使用双引号。

对于bash扩展变量,您需要双引号。

sed -i "s/${str}/${newSeed}/g"

+0

哦,我错过了!非常感谢choroba&sudo_o – dreamer