我正在尝试从命令行进行一些基本的文本分析,但每当我尝试运行命令时,我都会得到以下结果:tr:非法的字节序列。我已经将问题缩小到文本中的特殊字符(',,¨等)。我可以做些什么来从文本中删除这些特殊字符?我可以使用命令行吗?或者我必须运行脚本吗?
答案 0 :(得分:0)
我不知道您是如何处理文字的,但显然您正在尝试运行tr
,这会向您显示错误消息tr: Illegal byte sequence
。当它的输入不是对应于有效UTF-8编码的字节序列时(不是所有字节序列都对应于一系列Unicode字符的UTF-8编码),就会发生这种情况。
我不知道您尝试处理的是哪种文件,但在MacOS X环境中,命令file -I
可能会让您了解实际存在的编码。
如果只是重新编码文件,那么iconv
是一个有用的程序。您可以使用它来重新编码为UTF-8编码,使用iconv -f ... -t utf8
(其中...
是原始文件的编码,运行iconv -l
以获取可用的编码列表)
或者,如果您确实要删除文件中的特殊字符(正如您在问题标题中所述),则可以使用iconv -f ... -t ascii//TRANSLIT
。在最后一种情况下,"特殊字符"将用普通的ASCII字符近似。