Получение " sed error-незаконная последовательность байтов "(в bash) [дубликат]
этот вопрос уже есть ответ здесь:
Ошибка RE: незаконная последовательность байтов на Mac OS X
5 ответов
сделать некоторые редактирования потока, чтобы изменить неприятный значок Parallels. Он плохо разработан и встроен в само приложение, а не в файл изображения. Поэтому я нашел эту команду sed, которая имеет некоторые хорошие обратная связь:
sudo sed -i.bak s/Parallels_Desktop_Overlay_128/Parallels_Desktop_Overlay_000/g /Applications/Parallels Desktop.app/Contents/MacOS/prl_client_app
возвращает sed: RE error: illegal byte sequence
кто-нибудь может объяснить, что это значит? Какая часть команды является проблемой?
4 ответов:
попробуйте установить
LANGпеременные среды (LANG=C sed ...) или использовать один из бинарных инструментов sed, упомянутых здесь:замена двоичного sedпочему ошибка?
без
LANG=Csed предполагает, что файлы кодируются в любой кодировке, указанной вLANGи файл (будучи двоичным) может содержать байты, которые не являются допустимыми символами вLANGкодировка (таким образом, вы можете получить "незаконную последовательность байтов").почему делает
LANG=Cработы?C просто происходит, чтобы обработать все символы ASCII, а сами и не-ASCII символов в качестве литералов.
кроме
LANG=CиLC_CTYPE=C, Я должен был сделатьLC_ALL=Cчтобы заставить это работать.
LC_ALLперекрывает все индивидуальноLC_*категории. Таким образом, наиболее надежный подход заключается в использованииLC_ALL=C sed ...- нет необходимости также иметь дело с другими переменными.
Comments