目录排序文本

目录排序文本

我正在运行 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 $

请参阅此链接了解更多详情:

https://stackoverflow.com/questions/7168596/why-does-the-unix-sort-utility-ignore-leading-spaces-without-the-option-b

以下链接包含有关 LC_* 功能的信息 https://unix.stackexchange.com/questions/87745/what-does-lc-all-c-do

相关内容