如何在 Linux 中使用 sort 命令排序 ?

Linux 中的 sort 命令是 GNU coretils 包的一部分。该命令用于按升序 / 降序对指定文件中的文本行或标准输入中的文本行进行排序。排序后的输出可以写入文件或显示在标准输出中。sort 命令是一个简单而强大的具,可用于各种场景,从对文件中的数据进行排序到进一步分析和准备数据。

在本文中,我们将讨论 sort 命令的各种可用选项,并提供一些实际示例来说明其用法。

sort 命令的基本语法如下:

复制代码
sort [options] [file(s)]

该命令提供了各种选项,可用于自定义排序过程和需要排序的文件。如果没有指定文件,sort 命令将根据标准输入(即键盘)对输入进行排序。

以下是 Unix / Linux 系统中 sort 命令的一些常用选项:

  • -r : 将输入按相反顺序排序
  • -n :对输入进行数字排序
  • -k :根据特定字段或列对输入进行排序
  • -b :忽略前面的空格
  • -t :指定字段分隔符
  • -u :从输出中删除重复的行
  • -o :指定输出文件

让我们通过一些示例来仔细研究这些选项。

Sorting File Content

默认根据第一个字符按升序排序,您可以简单地键入 sort 命令,后跟文件名。

复制代码
sort data.txt

还可以使用以下命令为该命令提供输入。

复制代码
sort < data.txt 
cat data.txt | sort

Sorting in Reverse Order

-r 选项用于以相反的顺序对输入进行排序。

复制代码
sort -r data.txt

Numerical Sorting

-n 选项用于对输入进行数字排序,当对文本数字进行排序时这个选项很有用。

复制代码
sort -n data.txt

Sorting by Field

-k 选项用于根据特定字段或列对输入进行排序。此选项在对表格数据进行排序时非常有用,其中每一行

表示记录,字段由特定分隔符分隔。字段号是通过选项指定的,字段是从 1 开始编号。

复制代码
sort -k 2 data.txt

Specifying the Field Separator

-t 选项用于指定按字段排序时的字段分隔符。默认情况下,字段由 空格制表符 分隔。

复制代码
sort -t "," -k 2 data.txt

Removing Duplicate Lines

-u 选项用于从排序的输出中删除重复的行。当对大文件进行排序时,此选项非常有用。

复制代码
sort -u data.txt

Specifying the Output File

-o 选项用于指定输出文件,将排序后的数据保存到另一个文件而不是显示在屏幕上。

复制代码
sort data.txt -o sorted_data.txt

您还可以使用 > 操作符将内容写入文件。

复制代码
sort data.txt > sorted_data.txt

Combining Multiple Options

您可以组合不同的选项来排序结果。

例如,将文件按数字倒序排序并保存结果到一个新文件。

复制代码
sort -nr data.txt -o reverse_sorted_data.txt

当然,你也可以像这样组合不同的选项。

复制代码
sort -t "," -k 2,3 -u data.txt

我的开源项目

复制代码
相关推荐
China_Yanhy33 分钟前
入职 Web3 运维日记 · 第 8 日:黑暗森林 —— 对抗 MEV 机器人的“三明治攻击”
运维·机器人·web3
艾莉丝努力练剑39 分钟前
hixl vs NCCL:昇腾生态通信库的独特优势分析
运维·c++·人工智能·cann
酉鬼女又兒1 小时前
每天一个Linux命令_printf
linux·运维·服务器
翼龙云_cloud1 小时前
国际云代理商:2026年国际云注册风控升级实战指南 8 大平台无卡解决方案对比
服务器·阿里云·云计算
虾说羊1 小时前
docker容器化部署项目流程
运维·docker·容器
Trouvaille ~1 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
大大大反派1 小时前
CANN 生态中的自动化部署引擎:深入 `mindx-sdk` 项目构建端到端 AI 应用
运维·人工智能·自动化
June`1 小时前
高并发网络框架:Reactor模式深度解析
linux·服务器·c++
WHD3062 小时前
苏州勒索病毒加密 服务器数据解密恢复
运维·服务器
蜡笔小炘2 小时前
LVS -- 持久链接(Persistent Connection)实现会话粘滞
运维·服务器