Linux中带示例的sort命令

时间:2020-02-23 14:40:30  来源:igfitidea点击:

Linux的" sort"命令用于按特定顺序对文件内容进行排序。
它支持按字母顺序(升序或者降序),数字,反向顺序等对文件进行排序。
我们还可以从文件中删除重复的行。
在本文中,我们将看到Linux sort命令的不同用法示例。

使用sort命令时

  • 以数字或者数字开头的行出现在带有字母的行之前。

  • 以小写字母开头的行将出现在以相同字母开头但大写的行之前。

没有任何争论的Linux Sort命令

当使用sort不带任何参数时,它将按字母顺序排列文本文件的内容。
在此示例中,我们使用文本文件" fruits.txt",如下所示。

要按字母顺序排序,请运行:

# sort fruits.txt

用-r选项排序

如果希望使用sort命令以相反的顺序对文件进行排序,请使用-r选项。
例如,要在前面的示例中反转输入文件的顺序,请执行:

# sort -r fruits.txt

按数字排序

要按数字顺序对文件进行排序,请使用-n属性。
在这个例子中,我们有一个文件digits.txt,如下所示

要将文件从最小值到最大值按数字顺序排序,请执行以下命令

# sort -n digits.txt

输出

您也可以使用-nr选项反转数值结果的顺序,即从最大值到最小值排序

为了说明这一点,我们将运行以下命令:

# sort -nr digits.txt

用-o选项排序

-o选项允许用户将文件的输出写入新文件。
使用此选项与将输出重定向到另一个文件相同,如下所示:

# sort fruits.txt > newfile.txt

要将文件的输出使用-o选项写入新文件,请使用以下语法

# sort -o newfile.txt filename.txt

例如,

# sort sorted_fruits.txt fruits.txt

用-u选项排序

-u选项用于删除文本文件中的重复文件,同时按字母顺序对文本进行排序。

在此示例中,我们将使用" cars.txt",如下所示

如您所见,我们有两种重复的汽车模型:丰田和保时捷。

要删除这些重复项并按字母顺序排序,请运行

# sort -u cars.txt

用-k选项排序

-k选项根据列号对表进行排序。
例如,如果您有一个包含2列的表,请使用-k -2n选项对第二列进行排序。

在这个例子中,我们有文本文件" bonus.txt"

要对第二列进行排序,请执行

# sort -k -2n bonus.txt

使用-M选项排序月份

使用-M选项对包含月份的文件进行升序排序,即{Jan,Feb,…Nov,Dec}

我们有一个文件months.txt,如下所示

要对月份排序以便执行:

# sort -M months.txt

检查sort命令的版本

检查版本od sort命令运行

$sort --version

排序命令中的更多选项

要使自己熟悉除我们介绍的命令以外的其他命令,请访问排序手册页

# man sort