排序:字符串比较失败无效或不完整的多字节或宽字符

2024-02-10

我尝试在文本文件上使用以下命令:

$ sort <m.txt | uniq -c | sort -nr >m.dict 

但是我收到以下错误消息:

sort: string comparison failed: Invalid or incomplete multibyte or wide character
sort: Set LC_ALL='C' to work around the problem.
sort: The strings compared were ‘enwedig\r’ and ‘mwy\r’.

我在 Windows 7 上使用 Cygwin,之前在编辑 m.txt 将文件中的每个单词放在新行上时遇到了问题。请参见:

使用 AWK 将文本文件中的每个单词放在新行上 https://stackoverflow.com/questions/36291088/using-awk-to-place-each-word-in-a-text-file-on-a-new-line/36291303#36291303

我不确定我是否因此而收到这些错误,或者因为 m.txt 包含威尔士字母表中的字符(当我在 Python 中处理威尔士文本时,我需要将编码更改为“Latin-1” ')。

我尝试按照错误消息的建议并更改 LC_ALL='C' 但这没有帮助。任何人都可以详细说明我收到的错误,并就我如何尝试解决此问题提供任何建议。

UPDATE:

尝试 dos2unix 时,某些行显示有关无效字符的错误。事实证明这些不是威尔士字符,而是其他奇怪的字符(箭头等)。我检查了我的文本文件,删除了这些字符,直到能够使用 dos2unix 命令而不会出现错误。然而,在使用 dos2unix 命令后,所有文本都被连接起来(没有空格/换行符或任何东西,而它应该是这样,文件中的每个单词都在单独的行上)然后我使用 unix2dos 并且文本文件恢复正常。如何将每个单词放在其自己的单独行上并使用排序命令而不给出有关“\r”字符的错误?


我知道这是一个老问题,但只需运行命令export LC_ALL='C'执行所描述的技巧sort: Set LC_ALL='C' to work around the problem..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排序:字符串比较失败无效或不完整的多字节或宽字符 的相关文章

随机推荐