帮助中心 >  行业资讯 >  云计算 >  Linux 常用命令 —— sort 文件内容排序

Linux 常用命令 —— sort 文件内容排序

2025-03-05 09:45:23 233

Linux 中 sort 命令用于对文件内容进行逐行排序,支持添加可选参数自定义排序规则。

在数据处理的日常工作中,文本排序是不可或缺的一环。Linux 中的 sort 命令作为一款功能强大、灵活多变的工具,能够帮助用户轻松实现对文件内容的逐行排序,并通过丰富的可选参数自定义排序规则,满足不同场景下的需求。

基本语法

sort [OPTION] [file...]

可选参数OPTION如下:

  • 修改排序规则的选项:

    选项

    描述



    -d

    仅使用英文字母、数字及空格字符进行排序,忽略其他字符

    -f

    忽略字母大小写

    -i

    排序时,除了 040 至 176 之间的 ASCII 字符外,忽略其他字符

    -M

    按月份排序(例如,Jan, Feb, ...)

    -n

    按数值排大小序

    -r

    以逆序(从大到小)排序

  • 其他选项:

    选项

    描述



    -b

    忽略行首的空白字符

    -c

    检查输入是否已排序

    -k <n>

    指定排序的字段。例如,-k 2 注明根据第二列排序

    -o <file>

    将输出写入指定文件

    -m

    合并已排序的几个文件

    -s

    稳定排序,保持相同元素的相对顺序

    -t <char>

    指定字段分隔符,默认为空格或制表符

    -u

    去重。配合 -c,严格校验排序;不配合 -c,则只输出一次排序结果

    --parallel=<n>

    指定线程数量,使用多线程排序

    -S

    设置缓冲区大小

使用示例

  1. 基本排序:

    sort filename.txt

  2. 按照数值排序并输出到文件:

    sort -n -o sorted.txt unsorted.txt

  3. 逆序排序:

    sort -r filename.txt

  4. 指定字段排序:

    • -k1.11: 表示按第一列的第 11 个字符开始排序。

    • 1.20: 表示直到第一列的第 20 个字符为止。

    • 假设有一个以逗号分隔的文件 data.csv,要根据第二列排序:

      sort -t, -k2 data.csv

    • 根据指定的字段范围进行排序:

      sort -k1.11,1.20 file.txt

    • 去重并排序:

      sort -u filename.txt

    • 合并两个已排序文件:

      sort -m file1.txt file2.txt > merged.txt


    注意事项

    • 默认情况下,sort 是区分大小写的。大写字母会排在小写字母前面。如果想忽略大小写,可以使用 -f 选项。

    • 如果输入是非常大的文件,可能会需要调整内存使用,可以使用 --buffer-size 选项来设置缓冲区大小。

    • 使用 -k 指定关键字列进行排序时,默认以空格分隔。可搭配 -t 自定义字段分隔符。


    在学习和使用 Linux sort 命令的过程中,多实践、多尝试不同的参数组合,才能熟练掌握其精髓。同时,蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,也可以直接咨询。此外,蓝队云还整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,蓝队云期待与你一起探索,助力你在 Linux 运维之路上稳步前行。


    提交成功!非常感谢您的反馈,我们会继续努力做到更好!

    这条文档是否有帮助解决问题?

    非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

    在文档使用中是否遇到以下问题: