我知道,很多人對如何使用sed替換字符串都有疑問,但我在這裏遇到了困難。使用SED替換腳本中的難字符串
我有一個文件,我需要替換提示用戶輸入內容的文本字符串。我想將其自動化,以便用戶不會互動。通過用靜態文件路徑替換該字符串。但是文本是一個bash腳本,並且在我想要替換的字符串中包含「and」,它不起作用,因爲我在格式化時遇到了語法錯誤,或者根本無法用sed執行此操作。 !
這裏就是我試圖做的: 我想用一個字符串,看起來像這樣來代替這個長字符串
read -e -p 'Enter path for Boot Partition : ' BOOTUSERFILEPATH
:
BOOTUSERFILEPATH=../board-support/prebuilt-images
我嘗試:
sed -i "/read -e -p 'Enter path for Boot Partition : ' BOOTUSERFILEPATH/BOOTUSERFILEPATH="../board-support/prebuilt-images"" file_to_search.sh
更新:我固定的語法錯誤,但文件仍然不會更新與新的路徑信息... :(
發現了這個問題。搜索沒有找到字符串,因爲我的搜索命令有額外的空間。它現在有效!
您錯過了's'命令來執行替換,並且您的引用字符串中有雙引號。 – Barmar
而且,由於'/'是's'的分隔符,所以您需要避開路徑中的斜線或選擇不同的分隔符。 –
你是否真的需要經常這樣做,以至於需要自動化? – chepner