如何正确使用sort命令?基础语法、参数及实用技巧详解指南

sort命令是Linux/Unix系统中用于对文本文件内容进行排序的核心工具,它能够根据字符顺序、数字大小、字段位置等规则对文本行重新排列,默认按ASCII码升序排序,输出至标准输出或指定文件,以下从常用选项、功能场景及示例展开说明。

sort 命令怎么用

常用选项及功能

sort命令通过选项实现多样化排序需求,核心选项如下表所示:

选项 功能描述 示例
-f 忽略大小写,将所有字母视为小写 sort -f file.txt(将”Apple”和”apple”视为相同)
-n 按数字值排序,而非字符顺序(适用于纯数字或数字开头的行) sort -n numbers.txt(将”10″排在”2″前,而非按字符’1′<‘2’)
-r 反向排序,降序输出(默认升序) sort -r file.txt(从”z”到”a”排序)
-k 指定字段排序,支持多字段(-k起始列,结束列 sort -k2,2 file.txt(按每行第二列排序)
-t 指定字段分隔符(默认为空白字符) sort -t',' -k2,2 data.csv(按CSV文件的第二列排序)
-u 去重,仅保留唯一行(需先排序,否则仅去重相邻行) sort -u file.txt(重复行仅保留一行)
-o 将结果输出至指定文件(覆盖原文件) sort -o output.txt input.txt
-m 合并多个已排序文件(要求输入文件本身已排序) sort -m file1.txt file2.txt
-b 忽略行首空白字符(如空格、制表符) sort -b file.txt(避免前导空白影响排序)

功能场景及示例

基础文本排序

默认按ASCII码升序排序,字母顺序为A-Z、a-z(小写字母ASCII码大于大写)。
示例
假设file.txt内容为:

banana
Apple
cherry
apple

执行sort file.txt,输出:

Apple
apple
banana
cherry

若需忽略大小写,加-f选项:sort -f file.txt,输出:

Apple
apple
banana
cherry

数字排序

直接排序数字文本时,会按字符顺序(如”10″排在”2″前,因’1′<‘2’),需用-n选项按数值大小排序。
示例
numbers.txt内容为:

sort 命令怎么用

10
2
1
20

执行sort -n numbers.txt,输出:

1
2
10
20

按字段排序

处理结构化文本(如日志、CSV)时,可通过-k指定字段,-t指定分隔符。
示例
data.csv内容为(以逗号分隔):

1001,zhangsan,25
1002,lisi,30
1001,wangwu,20

按第三列(年龄)升序排序:sort -t',' -k3,3n data.csv,输出:

1001,wangwu,20
1001,zhangsan,25
1002,lisi,30

若需先按第二列(姓名)升序,再按第三列降序:sort -t',' -k2,2 -k3,3rn data.csv,输出:

1001,wangwu,20
1002,lisi,30
1001,zhangsan,25

去重与合并

-u选项需结合排序使用,否则仅去重相邻重复行;-m用于合并多个已排序文件。
示例
file1.txt内容(已排序):ancnefile2.txt内容(已排序):bdf,执行sort -m file1.txt file2.txt,输出:abcdef

sort 命令怎么用

相关问答FAQs

问题1:sort命令和uniq命令在去重时有什么区别?
解答:sort命令的-u选项会在排序过程中直接去除重复行(无论是否相邻),但要求输入文件是未排序的或已排序的;而uniq命令仅能去除相邻的重复行,若文件未排序,需先用sort排序再用uniq才能正确去重(即sort file.txt | uniq)。

问题2:如何实现先按第二列降序,再按第三列升序排序?
解答:使用-k选项指定多字段,结合-r实现降序,对以制表符分隔的文件,按第二列降序、第三列升序排序:sort -t$'t' -k2,2r -k3,3n file.txt,其中-t$'t'指定制表符为分隔符,-k2,2r表示第二列降序,-k3,3n表示第三列升序(n表示数字排序,若为文本则省略n)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14222.html

(0)
酷番叔酷番叔
上一篇 2天前
下一篇 2天前

相关推荐

  • VS2017开始菜单快捷方式怎么用?

    在Windows开始菜单中找到Visual Studio 2017快捷方式,点击即可启动,这是微软官方推荐的最简单可靠的启动方法。

    2025年6月28日
    2200
  • 目录如何免压缩打包?

    Linux压缩命令使用指南在Linux系统中,文件压缩是日常管理的核心操作之一,它能有效节省存储空间、加速文件传输,并方便数据备份,本文将详细解析六大常用压缩工具的使用方法,涵盖基础命令、实战示例及场景建议,tar:归档与解包工具功能:将多个文件/目录打包为单个文件(不压缩),常与其他压缩工具配合使用,语法:t……

    2025年7月28日
    1100
  • 怎么将python命令符清空

    Python命令符下,可以使用clear()函数

    2025年8月14日
    500
  • 怎么查看服务器型号的命令

    Linux系统中,可使用uname -a或`dmidecode | grep “

    6天前
    500
  • 如何在VS2013打开开发者命令提示符?

    方法1:通过开始菜单快捷方式(推荐)打开开始菜单点击Windows左下角的「开始」按钮(或按Win键),定位VS2013文件夹在程序列表中找到 “Visual Studio 2013” 文件夹并展开,选择命令提示符点击 “VS2013 开发人员命令提示”(英文版为”Developer Command Promp……

    2025年7月24日
    1600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信