初学者的Linux排序命令教程(8个示例)
寻找一个命令行实用程序来排序文本文件中的内容? 排序 ,专门为此目的而建造的工具。 在本教程中,我们将使用一些易于理解的示例来讨论此命令。 但在这之前,值得一提的是,这里的所有示例都已在Ubuntu 16.04 LTS机器上进行了测试。
Linux排序命令
排序命令允许您对文本文件中的行进行排序。 以下是它的语法:
sort [OPTION]... [FILE]...
下面是该工具的手册页如何描述它:
Write sorted concatenation of all FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.
以下是一些问答样式的例子,应该给你一个排序如何工作的好主意。
Q1。 如何使用排序命令?
假设你有一个包含一些名字的文件,并且你想按字母顺序对它们进行排序。 然后,您需要做的就是将文件的名称作为输入传递给sort命令。
例如:
sort file1
所以如果文件1包含以下几行:
Zimbabwe
Serbia
Norway
Australia
然后输出将是:
Australia
Norway
Serbia
Zimbabwe
Q2。 如何让排序忽略前导空白?
根据您的区域设置,当行包含前导空白时,您可能会看到排序产生意想不到的结果。 例如:
假设文件包含以下行:
Zimbabwe
Serbia
Norway
Australia
你运行排序,只看到以下结果:
Norway
Serbia
Australia
Zimbabwe
这可能看起来出乎意料,但实际发生的情况是,包含前导空白的行按空格排序,而其他行按字母顺序排序。 要确保排序命令忽略前导空白,请使用-b选项。 所以在这种情况下,你会得到以下结果:
Australia
Norway
Serbia
Zimbabwe
Q3。 如何进行排序忽略大小写?
如果文件包含以大写和小写字母开头的单词/行,则排序将大写显示在顶部。 但是,如果需要,可以使用-f命令行选项更改此行为。
例如:
sort -f file1
Q4。 如何进行排序比较数字?
假设一个文件只包含数字,并且您想排序以排序。 然后可以使用-g命令行选项使其成为可能。
sort -g file1
例如具有以下内容的文件:
32000
2500
50000
54
可以使用sort命令进行排序以产生以下结果:
54
2500
32000
50000
Q5。 如何使用人类可读的数值进行分类?
如果您想要使用人类可读的数字值(如1K,2G等)进行排序,请使用-h命令行选项。
sort -h file1
因此,例如,一个包含以下行的文件:
1M
2G
3K
可以使用-h选项按以下方式排序:
3K
1M
2G
Q6。 如何进行排序只检查排序的输入?
以防万一你想排序只检查一个文件是否排序,使用-c命令行选项。
sort -c file1
例如,如果file1包含以下行:
dhg
lkh
zyb
abd
然后使用-c将看到排序产生以下输出:
sort: file1:4: disorder: abd
所以你观察到这个工具不仅指出了这个疾病,而且还输出了它的位置。
Q7。 如何进行排序合并已排序的文件?
如果要排序合并两个已排序的文件,请使用-m命令行选项。
sort -m file1 file2
例如,在我的情况下,file1和file2都包含以下行:
abd
dhg
lkh
zyb
以下是-m选项如何合并这些文件:
abd
abd
dhg
dhg
lkh
lkh
zyb
zyb
Q8。 如何进行排序将结果写入文件?
默认情况下,sort命令将输出写入STDOUT。 但是,您可以使用-o选项强制它写入给定的文件。
例如:
sort file1 -o output.txt
结论
Sort命令提供了很多选项。 我们在这里讨论了几个关键的问题。 我们建议您先练习这些,一旦完成,请前往命令的手册页以了解更多信息。