Linux 中的 sort
命令用于对文本文件或命令输出的行进行排序。它可以根据字母顺序、数字顺序、逆序、指定列等多种方式排序,非常灵活。
sort [OPTION]... [FILE]...
OPTION
:指定排序的选项,如数字排序、逆序等。FILE
:需要排序的文件。如果不指定文件,sort
会从标准输入读取数据。-n
:按数值大小排序(数字排序)。-r
:逆序排序(降序)。-k
:按指定列排序。-t
:指定字段分隔符(默认为空格)。-u
:去除重复行。-o
:将排序后的结果写入指定文件,代替原文件。-f
:忽略大小写。-b
:忽略前导空格。-M
:按月份名称排序(如 Jan
, Feb
, Mar
等)。sort file.txt
这会对 file.txt
中的行按字母顺序进行排序。
示例输入 (file.txt
):
banana
apple
grape
cherry
输出:
apple
banana
cherry
grape
sort -n numbers.txt
示例输入 (numbers.txt
):
10
5
30
2
输出:
2
5
10
30
sort -r file.txt
这会按字母的逆序排序。
示例输出:
grape
cherry
banana
apple
可以使用 -k
选项指定按哪一列进行排序。假设有一个带有两列数据的文件,我们希望按第二列排序。
示例文件 (data.txt
):
John 25
Alice 30
Bob 22
Eve 28
按第二列(年龄)排序:
sort -k 2 -n data.txt
输出:
Bob 22
John 25
Eve 28
Alice 30
假设文件以逗号分隔,可以使用 -t
选项指定分隔符。
示例文件 (comma.txt
):
John,25
Alice,30
Bob,22
Eve,28
按年龄(第二列)排序:
sort -t ',' -k 2 -n comma.txt
输出:
Bob,22
John,25
Eve,28
Alice,30
使用 -u
选项可以删除重复的行。
sort -u file.txt
示例输入 (file.txt
):
apple
banana
apple
grape
输出:
apple
banana
grape
使用 -o
选项可以将排序后的结果保存到指定文件中。
sort file.txt -o sorted.txt
这会将 file.txt
的排序结果保存到 sorted.txt
中。
假设文件中有月份名称,可以使用 -M
选项按月份顺序排序。
示例文件 (months.txt
):
March
January
February
April
按月份排序:
sort -M months.txt
输出:
January
February
March
April
sort -f file.txt
示例输入 (file.txt
):
banana
Apple
grape
cherry
输出:
Apple
banana
cherry
grape
可以组合多个选项,例如按数值排序并逆序:
sort -n -r numbers.txt