初学者的Linux排序命令教程(8个示例)

初学者的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命令提供了很多选项。 我们在这里讨论了几个关键的问题。 我们建议您先练习这些,一旦完成,请前往命令的手册页以了解更多信息。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏