'sed'没有替换文件中的匹配序列

  • 本文关键字:文件 sed 替换 bash shell sed
  • 更新时间 :
  • 英文 :


我在特定文件中具有这样的输入

#- 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

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

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

您需要双引号才能扩展变量。

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

相关内容

  • 没有找到相关文章

最新更新