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