sort
命令简介
sort
命令是 Linux/Unix 系统中一个非常实用的工具,主要用于对文本文件的行进行排序。它可以根据不同的规则对文本内容进行升序或降序排列。
基本用法
最简单的用法是直接对文件进行排序并输出到标准输出:
sort filename
这会按字母顺序(默认升序)排列 filename
中的每一行。
常用选项
-r
(或--reverse
):反向排序(降序)。
sort -r filename
-n
(或--numeric-sort
): 按数值排序。当行中包含数字时,这个选项会按照数字的大小而不是字母顺序来排序。
sort -n filename
-k
(或--key
): 指定排序的键(列)。你可以指定从哪一列开始排序,以及到哪一列结束。
sort -k 2 filename # 按第二列排序
你也可以指定列的范围,例如 -k 2,3
表示从第二列到第三列进行排序。
-u
(或--unique
): 去重。只保留唯一的行,重复的行只显示一次。
sort -u filename
-o
(或--output
): 将排序结果输出到文件。
sort filename -o sorted_filename
这会将排序后的内容保存到 sorted_filename
中,而不会直接输出到屏幕。
-t
(或--field-separator
): 指定字段分隔符。当你的数据不是以空格分隔时,可以使用此选项。
sort -t ',' -k 2 filename # 以逗号为分隔符,按第二列排序
简单示例
假设你有一个名为 data.txt
的文件,内容如下:
apple 10
banana 5
cherry 20
date 15
- 按字母顺序排序:
sort data.txt
# 输出:
# apple 10
# banana 5
# cherry 20
# date 15
- 按数字大小(第二列)排序:
sort -n -k 2 data.txt
# 输出:
# banana 5
# apple 10
# date 15
# cherry 20
sort
命令是处理文本数据的强大工具,熟练掌握它的常用选项能大大提高你的命令行操作效率。