sort 命令是 Linux 和 Unix 系统中用于对文本文件中的行进行排序的一个非常强大的工具。它可以按字母顺序、数字顺序、月份顺序等多种方式对文件或标准输入中的数据进行排序。以下是 sort 命令的详细介绍,包括常用选项和示例。
基本用法
sort [选项] [文件...]
常用选项
-
-b
忽略每行前面的空白字符。
示例:sort -b file.txt -
-d
按照字典顺序排序,仅考虑字母、数字和空格。
示例:sort -d file.txt -
-f
忽略大小写。
示例:sort -f file.txt -
-g
按照通用数值顺序排序。
示例:sort -g file.txt -
-i
按照字节顺序排序,仅考虑打印字符。
示例:sort -i file.txt -
-M
按照月份排序。
示例:sort -M file.txt -
-n
按照数值顺序排序。
示例:sort -n file.txt -
-r
逆序排序。
示例:sort -r file.txt -
-k
指定排序字段。
示例:sort -k 2 file.txt按第二列排序。 -
-t
指定字段分隔符。
示例:sort -t "," -k 2 file.txt按逗号分隔的第二列排序。 -
-u
输出唯一的行,即去重。
示例:sort -u file.txt -
-o
将排序结果写入指定文件。
示例:sort file.txt -o sorted_file.txt -
--parallel
指定并行排序的线程数。
示例:sort --parallel=4 file.txt -
-C或--check
检查文件是否已经排序。如果已排序,则返回 0。
示例:sort -C file.txt -
-s
稳定排序,保持相同键值的行的原始顺序。
示例:sort -s file.txt
示例
-
按字母顺序排序
sort file.txt -
按数值排序
sort -n numbers.txt -
按月份排序
sort -M months.txt -
逆序排序
sort -r file.txt -
按第二列排序
sort -k 2 file.txt -
按逗号分隔的第二列排序
sort -t "," -k 2 file.csv -
去重并排序
sort -u file.txt -
将排序结果写入另一个文件
sort file.txt -o sorted_file.txt -
检查文件是否已排序
sort -C file.txt
组合使用
sort 命令可以与其他命令组合使用,通过管道传递数据。例如:
参考:uniq 命令简介
-
与
uniq结合使用sort file.txt | uniq -
与
grep结合使用grep "pattern" file.txt | sort -
与
head结合使用sort file.txt | head -n 10 -
与
awk结合使用awk '{print $2, $1}' file.txt | sort
高级用法
-
多键排序
sort -k 2,2 -k 1,1 file.txt先按第二列排序,再按第一列排序。
-
指定排序顺序
sort -k 2,2n -k 1,1r file.txt第二列按数值升序排序,第一列按字母降序排序。
-
稳定排序
sort -s -k 1,1 file.txt对第一列进行稳定排序。
通过这些选项和示例,你可以灵活地使用 sort 命令来处理各种排序需求。如果你有特定的排序需求或遇到问题,欢迎继续提问。