有没有办法从文本文件中删除特殊字符?

时间:2017-01-22 20:00:09

标签: command-line text-analysis

我正在尝试从命令行进行一些基本的文本分析,但每当我尝试运行命令时,我都会得到以下结果:tr:非法的字节序列。我已经将问题缩小到文本中的特殊字符(',,¨等)。我可以做些什么来从文本中删除这些特殊字符?我可以使用命令行吗?或者我必须运行脚本吗?

1 个答案:

答案 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字符近似。