Shell-Script

sed 中的變數

  • November 7, 2013

我有一個文件,其中包含具有絕對路徑的文件名。

在該路徑的中間,是一個變數目錄,每當我對變數部分進行硬編碼時,它都可以正常工作,但是當我用變數名替換它時,該sed部分就不起作用了。

sed部分是刪除模式或就此而言,路徑。

file=`echo $one_file | sed 's:/dir1/dir2/$VAR/last_dir/::'`

當你使用單引號,也就是硬引號時,變數名不會被擴展。您需要使用雙引號,也就是軟引號。

sed "s:/dir1/dir2/$var/Last_dir/::"

或轉義引號:

sed 's:/dir1/dir2/'"$var"'/Last_dir/::'

您還需要確保$var不包含任何冒號、點、星號[、、換行符或反斜杠字元,或者如果存在,則將它們轉義。

引用自:https://unix.stackexchange.com/questions/99190