搜索和替换不适用于 sed busybox。出现 sed:不匹配的“/”错误

搜索和替换不适用于 sed busybox。出现 sed:不匹配的“/”错误

我正在尝试搜索特定的字符串并替换文件内的所有出现的内容。

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 可禁用换行。

相关内容