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