我正在运行 Ubuntu 12,不久前我编写了一个小脚本文件来操作用于研讨会索引的文本文件。
最重要的功能是将文件按字母顺序排序,我使用命令执行了该操作
sort -df
,当第一次编写时,它运行良好,因为目录排序注意前导空格和制表符,将带有前导空格的文本行放在文件的头部。
现在它不会这样做,并且相同的脚本文件只会进行直接的字母排序并忽略空格。这不是我需要的。阅读手册 (man) 和其他文档似乎同意我的观点。
我该怎么做才能恢复我需要的?感谢您提供的任何帮助。问候 Charlie
答案1
排序之前需要设置LC_COLLATE=C。
不使用 LC_COLLATE=C :
$ cat test.txt | sort -df abc abc abc baa baa baa
使用 LC_COLLATE=C 后:
$ cat test.txt | env LC_COLLATE=C sort -df abc baa abc baa abc baa $
请参阅此链接了解更多详情:
以下链接包含有关 LC_* 功能的信息 https://unix.stackexchange.com/questions/87745/what-does-lc-all-c-do