当前位置: 首页 > 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

相关文章:

  • 【射击game】
  • WebGL开发三维家装设计
  • python采集晋江文学城小说数据
  • mybatis配置环境流程
  • 教务管理系统带万字文档基于springboot+vue的校务管理系统java项目
  • 16:00面试,16:08就出来了,问的问题有点变态。。。
  • 硬币检测电路设计
  • C++ 的 Tag Dispatching(标签派发) 惯用法
  • 深入Netty RPC内核:编码、通信与性能优化全指南
  • cv2函数实践-图像处理(中心外扩的最佳RoI/根据两个坐标点求缩放+偏移后的RoI/滑窗切片/VOC的颜色+调色板)
  • godot.bk:how to add map to the game
  • vruntime
  • 阿里云 通过EIP实现VPC下的SNAT以及DNAT
  • echarts绘制三维柱状图
  • 数据结构:队列
  • uniapp实现微信小程序调用云函数【vue3】
  • 块设备层保序操作分析
  • 从头开始构建GPT标记器
  • ChatGLM2-6B 模型基于 [P-Tuning v2]的微调
  • 如何使用Dora SDK完成Fragment流式切换和非流式切换
  • 一企业采购国产化肥冒充“挪威化肥”:7人被抓获
  • Meta正为AI眼镜开发人脸识别功能
  • 两部上戏学生作品亮相俄罗斯“国际大学生戏剧节”
  • 深入贯彻中央八项规定精神学习教育中央第一指导组指导督导河北省见面会召开
  • 首批18位!苏联籍抗日航空英烈信息更新
  • 定位真核生物起源于约27.2亿年前,华东师大团队在《自然》发文