当前位置: 首页 > news >正文

【linux】(2)文件内容排序sort

sort 是一个用于排序文件内容的命令行工具,在 Linux 和 Unix 系统中非常常用。

基本用法

sort [OPTION]... [FILE]...

常用选项

  1. 按数值排序 -n
sort -n filename

例子:对包含数值的文件进行排序。

  1. 按字典顺序排序 -d
sort -d filename

例子:仅考虑字母和数字字符进行排序。

  1. 按月份排序 -M
sort -M filename

例子:对包含月份名称的文件进行排序。

  1. 忽略大小写 -f
sort -f filename

例子:忽略大小写进行排序。

  1. 逆序排序 -r
sort -r filename

例子:逆序排序。

  1. 指定分隔符 -t
   sort -t',' -k2 filename

例子:使用逗号作为字段分隔符,并按第二个字段排序。

  1. 按指定键排序 -k
sort -k2 filename

例子:按第二个字段排序。

  1. 唯一排序 -u
sort -u filename

例子:去除重复行并排序。

示例文件

假设有一个文件 example.txt,内容如下:

banana
apple
Orange
grape
pear
Lemon

按字母顺序排序

默认情况下,sort 按字母顺序排序:

sort example.txt

输出:

Lemon
Orange
apple
banana
grape
pear

按数值排序

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

10
2
33
21
5

按数值排序:

sort -n numbers.txt

输出:

2
5
10
21
33

忽略大小写排序

sort -f example.txt

输出:

apple
banana
grape
Lemon
Orange
pear

逆序排序

sort -r example.txt

输出:

pear
grape
banana
apple
Orange
Lemon

按字段排序

假设有一个文件 data.txt,内容如下:

1,apple
2,banana
3,grape
4,pear
5,orange

按第二个字段排序(使用逗号作为分隔符):

sort -t',' -k2 data.txt

输出:

1,apple
2,banana
3,grape
5,orange
4,pear

唯一排序

假设有一个文件 duplicates.txt,内容如下:

apple
banana
apple
orange
banana

去除重复行并排序:

sort -u duplicates.txt

输出:

apple
banana
orange

稳定排序

使用 -s 选项可以保证稳定排序,即保持原始相等元素的顺序。

sort -s -k1,1 data.txt

按指定字符范围排序

可以使用 -k 选项指定排序的起始和结束字符位置。例如,按每行的第2到第3个字符排序:

sort -k1.2,1.3 filename

综合示例

假设有一个更复杂的文件 complex.txt,内容如下:

3,John,5000
1,Jane,7000
2,Bob,6000
4,Alice,5500

按第二个字段(名字)排序,然后按第三个字段(工资)排序:

sort -t',' -k2,2 -k3,3n complex.txt

输出:

4,Alice,5500
2,Bob,6000
1,Jane,7000
3,John,5000

排序带空格的字段

对于带有空格的字段,可以使用 -b 选项忽略前导空格进行排序:

sort -b -k2,2 filename

排序文件内容并保存到新文件

可以将排序结果重定向到新文件:

sort example.txt > sorted_example.txt
http://www.lryc.cn/news/361444.html

相关文章:

  • css 图片上添加模糊背景的文字内容
  • Python3 函数参数
  • 精准检测,可燃气体报警系统的技术原理与特点
  • 6月2(信息差)
  • 先锋文汇发稿技巧方法
  • 无人机推流/RTMP视频推拉流EasyDSS无法卸载软件是什么原因?
  • QML信号连接到c++的槽函数(五)
  • [Windows] 植物大战僵尸杂交版
  • JVM之【GC-可达性分析算法】
  • 【机器学习】——驱动智能制造的青春力量,优化生产、预见故障、提升质量
  • Python实用代码片段分享(三)
  • 树形结构-CRUD接口
  • 【Qt知识】Qt窗口坐标系
  • SAP Build引言
  • 2024上海国际钢丝绳及吊索具展览会
  • 记一次mysql索引优化
  • 【Javascript系列】Terser通过调用API来实现代码的压缩和优化功能
  • 嵌入式期末复习
  • 生信算法7 - 核酸序列Fasta和蛋白PDB文件读写与检索
  • 【Python】Python异步编程
  • pytorch笔记:自动混合精度(AMP)
  • R语言ggplot2包绘制世界地图
  • 【Linux】Linux的权限_1
  • 日语_远程办公常用日语单词
  • MTK 平台项目security boot 开启/关闭 及 系统签名流程
  • JDBC连接MySQL
  • 【Qt】【模型视图架构】 在项目视图中启用拖放
  • B端产品无爆款,说有的都是忽悠和外行!
  • 腾讯云的身份证核验,找不到这个类
  • vue3 vue-draggable-next 实现拖拽穿梭框效果