Поиск и замена не работают с sed busybox. Получение ошибки sed: unmatched '/'

Поиск и замена не работают с sed busybox. Получение ошибки sed: unmatched '/'

Я пытаюсь найти определенную строку и заменить все ее вхождения в файле.

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, чтобы отключить перенос строк.

Связанный контент