2017-01-22 18 views
0

Я пытаюсь выполнить базовый анализ текста из командной строки, но всякий раз, когда я пытаюсь запустить команду, я получаю следующее: tr: Незаконная последовательность байтов. Я сузил проблему до специальных символов в тексте (',, ¨ и т. Д.). Есть ли что-то, что я могу сделать, чтобы удалить эти специальные символы из текста? Могу ли я использовать командную строку? Или мне нужно запустить скрипт?Есть ли способ удалить специальные символы из текстового файла?

+0

См. Http://unix.stackexchange.com/questions/141420/tr-complains-of-illegal-byte-sequence, я думаю, что ваш файл находится в неправильной кодировке. На какой ОС вы? См. Например http://stackoverflow.com/questions/64860/best-way-to-convert-text-files-between-character-sets. –

+0

Спасибо за ответ! Я использую macOS Sierra. Я дам ссылку, которую вы предоставили. –

+0

Итак, если вы действительно хотите избавиться от не-ascii в вашем файле, возможно, 'iconv -f utf8 -t ascii // TRANSLIT' - это то, что вы ищете. Вернее, с чем-то еще вместо 'utf8', в зависимости от того, что находится в вашем файле. См. Http://stackoverflow.com/questions/8562354/remove-unicode-characters-from-textfiles-sed-other-bash-shell-methods. –

ответ

0

Я не знаю, как вы пытаетесь обработать свой текст, но, видимо, вы пытаетесь запустить tr, что дает вам сообщение об ошибке tr: Illegal byte sequence. Это происходит, когда его вход не является байтовой последовательностью, которая соответствует действительной кодировке UTF-8 (не все байтовые последовательности соответствуют кодировке UTF-8 серии символов Unicode).

Я не знаю, какой файл вы пытаетесь обработать, но в среде MacOS X команда file -I может дать вам представление о кодировке, которая на самом деле существует.

Если это всего лишь вопрос перекодирования вашего файла, то iconv - полезная программа. Вы можете использовать его для перекодировки в кодировку UTF-8 с помощью iconv -f ... -t utf8 (где ... - это кодировка вашего исходного файла, запустите iconv -l для списка доступных кодировок).

Если вы действительно хотите, чтобы удалили специальных символов в вашем файле (как вы заявите в заголовке своего вопроса), вы можете использовать iconv -f ... -t ascii//TRANSLIT. В этом последнем случае «специальные символы» будут аппроксимированы нормальными символами ASCII.

 Смежные вопросы

  • Нет связанных вопросов^_^