我正在尝试搜索特定的字符串并替换文件内的所有出现的内容。
sed -i -e "s/$search_string/$replace_string/g" $filePath
我sed: unmatched '/'
在 BusyBox v1.35.0 上不断收到错误。但是在我的本地系统上,同样的事情却运行正常。
和不,既不包含 $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 可禁用换行。