Shell工具——sort

sort 是一个在 Unix 和类 Unix 系统(如 Linux 和 macOS)中广泛使用的命令行工具,用于对文本文件中的行进行排序。它非常灵活,支持多种排序选项,如按数值、字典顺序排序,以及逆序排序等。

基本用法

sort [选项] [文件...]

如果没有指定文件,sort 会从标准输入读取数据。

常用选项

  • -n:按数值排序,而非默认的字典序。
  • -r:逆序排序。
  • -t:指定字段分隔符,默认为空白字符(空格或制表符)。
  • -k:指定排序的字段,配合 -t 使用。例如,-k2,2 表示仅根据第二个字段排序。
  • -u:去重,仅输出排序后的唯一行。
  • -o:将排序后的结果输出到指定文件,而不是标准输出。

示例

  1. 基本排序

    假设有一个名为 numbers.txt 的文件,内容如下:

    3  
    1  
    4  
    1  
    5  
    9  
    2  
    6

    使用 sort 排序:

    sort numbers.txt

    输出:

    1  
    1  
    2  
    3  
    4  
    5  
    6  
    9

  2. 按数值排序

    为了按数值而非字典序排序,使用 -n 选项:

    sort -n numbers.txt

    输出:

    1  
    1  
    2  
    3  
    4  
    5  
    6  
    9

    注意,尽管这里的结果看起来与未使用 -n 时相同,但在处理包含前导零的数字或更复杂的数字格式时,差异会显现出来。

  3. 逆序排序

    使用 -r 选项进行逆序排序:

    sort -nr numbers.txt

    输出:

    9  
    6  
    5  
    4  
    3  
    2  
    1  
    1
  4. 基于字段排序

    假设有一个名为 people.txt 的文件,内容如下(使用逗号作为分隔符):

    John,30  
    Jane,25  
    Doe,35  
    Smith,20

    按年龄(第二个字段)排序:

    sort -t, -k2,2 people.txt

    输出:

    Smith,20  
    Jane,25  
    John,30  
    Doe,35
  5. 去重并排序

    去除重复行并排序:

    sort -u numbers.txt

    输出:

    1  
    2  
    3  
    4  
    5  
    6  
    9

    sort 是一个非常强大的工具,支持多种排序选项和模式,能够满足大多数文本排序的需求。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值