![如何將命令的輸出傳遞給 sed](https://rvso.com/image/1419622/%E5%A6%82%E4%BD%95%E5%B0%87%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BC%B8%E5%87%BA%E5%82%B3%E9%81%9E%E7%B5%A6%20sed.png)
我的sed命令輸入#更新設定檔中的金鑰。 沒有取得變數的內容$GETKEY 誰來幫幫我?
# 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