hja*_*mig 6 unix sorting string cygwin uniq
我正在尝试在文本文件上使用以下命令:
$ sort <m.txt | uniq -c | sort -nr >m.dict
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息:
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’.
Run Code Online (Sandbox Code Playgroud)
我在Windows 7上使用Cygwin,并且在编辑m.txt时遇到麻烦,将文件中的每个单词放在一个新行上.请参阅:
我不确定我是否因此而收到这些错误,或者因为m.txt包含来自威尔士语字母的字符(当我在Python中使用威尔士文本时,我需要将编码更改为'Latin-1 ").
我尝试按照错误消息的建议并更改LC_ALL ='C'然而这没有帮助.任何人都可以详细说明我收到的错误,并提供有关如何尝试解决此问题的任何建议.
更新:
尝试使用dos2unix时,会在某些行显示有关无效字符的错误.事实证明这些不是威尔士人物,而是其他奇怪的人物(箭头等).我查看了删除这些字符的文本文件,直到我能够无错误地使用dos2unix命令.但是,在使用dos2unix命令后,所有文本都连接在一起(没有空格/换行符或任何内容,而应该是这样,文件中的每个单词都在单独的行上)然后我使用unix2dos并且文本文件恢复正常.如何在每个单词的各个单词上使用sort命令而不会给出错误的'\ r'字符?
看起来像 Windows 行结束相关问题(\r\n与\n)。您可以m.txt使用以下命令转换为 Unix 行结尾
dos2unix m.txt
Run Code Online (Sandbox Code Playgroud)
然后重新运行您的命令。