如何将命令的输出传递给 sed

如何将命令的输出传递给 sed

我的sed命令#更新配置文件中的密钥。 没有获取变量的内容获取密钥 谁来帮帮我?

  # Get key from output of the website.
  GETKEY=`wget https://www.badips.com/get/key -qO - | awk {'print $9'} | cut -d ":" -f3 | cut -d "}" -f1 | sed 's/\"//g'`
  if [ $? -eq 0 ]
  then

      # Update key in config file.    
      sed -i 's/^\(KEY\s*=\s*\).*$/\1$GETKEY/' Config

  fi

答案1

单引号内的变量不会被替换。使用:

  sed -ri "s/^(KEY\\s*=\\s*).*$/\\1$GETKEY/" Config

-r过去常常不需要转义括号,但其他反斜杠需要在单引号内转义。否则,你可以混合使用引号:

  sed -ri 's/^(KEY\s*=\s*).*$/\1'"$GETKEY/" Config

相关内容