我正在嘗試搜索特定字串並替換文件中的所有匹配項。
sed -i -e "s/$search_string/$replace_string/g" $filePath
sed: unmatched '/'
我在 BusyBox v1.35.0 上不斷收到錯誤訊息。然而,同樣的事情在我的本地系統上運作良好。
和不, 和 the $search_string
都不$replace_string
包含任何/
。我也嘗試過使用所有類型的分隔符,以防萬一。
答案1
發生此問題的原因是 $replace_string 是帶有空格和換行符的 Base64 編碼字串
replace_string=$(echo -n $json_string | base64)
將上面的命令更改為
json_string=$(echo -n $json_string | base64 -w 0)
為我解決了
-w, --wrap=COLS 在 COLS 字元之後換行編碼行(預設 76)。使用 0 禁用換行。