Я пытаюсь выполнить базовый анализ текста из командной строки, но всякий раз, когда я пытаюсь запустить команду, я получаю следующее: tr: Незаконная последовательность байтов. Я сузил проблему до специальных символов в тексте (',, ¨ и т. Д.). Есть ли что-то, что я могу сделать, чтобы удалить эти специальные символы из текста? Могу ли я использовать командную строку? Или мне нужно запустить скрипт?Есть ли способ удалить специальные символы из текстового файла?
ответ
Я не знаю, как вы пытаетесь обработать свой текст, но, видимо, вы пытаетесь запустить 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.
См. 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. –
Спасибо за ответ! Я использую macOS Sierra. Я дам ссылку, которую вы предоставили. –
Итак, если вы действительно хотите избавиться от не-ascii в вашем файле, возможно, 'iconv -f utf8 -t ascii // TRANSLIT' - это то, что вы ищете. Вернее, с чем-то еще вместо 'utf8', в зависимости от того, что находится в вашем файле. См. Http://stackoverflow.com/questions/8562354/remove-unicode-characters-from-textfiles-sed-other-bash-shell-methods. –