sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。

sort可针对文本文件的内容,以行为单位来排序

Sort命令将逐行对文件中的内容进行排序。如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。

命令格式

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]][root@master ~]# sort --help
用法:sort [选项]... [文件]...或:sort [选项]... --files0-from=F
将所有文件的排序连接写入标准输出。# 长选项的强制参数也是短选项的强制参数。
排序选项:-b, --ignore-leading-blanks   忽略前导的空白区域-d, --dictionary-order        只考虑空白区域和字母字符-f, --ignore-case             忽略字母大小写-g, --general-numeric-sort  compare according to general numerical value-i, --ignore-nonprinting      只考虑可打印字符-M, --month-sort            compare (unknown) < 'JAN' < ... < 'DEC'-h, --human-numeric-sort      使用易读性数字(例如: 2K 1G)-n, --numeric-sort            根据字符串数值比较-R, --random-sort             根据随机hash 排序--random-source=文件      从指定文件中获得随机字节-r, --reverse                 逆序输出排序结果--sort=WORD               按照WORD 指定的格式排序:一般数字-g,高可读性-h,月份-M,数字-n,随机-R,版本-V-V, --version-sort            在文本内进行自然版本排序其他选项:--batch-size=NMERGE       一次最多合并NMERGE 个输入;如果输入更多则使用临时文件-c, --check, --check=diagnose-first   检查输入是否已排序,若已有序则不进行操作-C, --check=quiet, --check=silent     类似-c,但不报告第一个无序行--compress-program=程序   使用指定程序压缩临时文件;使用该程序的-d 参数解压缩文件--debug                   为用于排序的行添加注释,并将有可能有问题的用法输出到标准错误输出--files0-from=文件        从指定文件读取以NUL 终止的名称,如果该文件被指定为"-"则从标准输入读文件名-k, --key=KEYDEF          sort via a key; KEYDEF gives location and type-m, --merge               merge already sorted files; do not sort-o, --output=文件             将结果写入到文件而非标准输出-s, --stable                  禁用last-resort 比较以稳定比较算法-S, --buffer-size=大小        指定主内存缓存大小-t, --field-separator=分隔符  使用指定的分隔符代替非空格到空格的转换-T, --temporary-directory=目录        使用指定目录而非$TMPDIR 或/tmp 作为临时目录,可用多个选项指定多个目录--parallel=N              将同时运行的排序数改变为N-u, --unique          配合-c,严格校验排序;不配合-c,则只输出一次排序结果-z, --zero-terminated 以0 字节而非新行作为行尾标志--help            显示此帮助信息并退出--version         显示版本信息并退出KEYDEF为F[.C][OPTS][,F[.C][OPTS]]表示启动和停止位置,其中F是字段号,C是字段中的字符位置;
两者都是原点1,停止位置默认为行尾。如果-t和-b都不生效,则从前面空格的开始计数。
OPTS是一个或多个单字母排序选项[bdfgiMhnRrV],它覆盖该键的全局排序选项。如果没有给出键,则使用整行作为键。SIZE may be followed by the following multiplicative suffixes:
内存使用率% 1%,b 1、K 1024 (默认),M、G、T、P、E、Z、Y 等依此类推。如果不指定文件,或者文件为"-",则从标准输入读取数据。*** 警告 ***
本地环境变量会影响排序结果。
如果希望以字节的自然值获得最传统的排序结果,请设置LC_ALL=C。

常用命令选项

-b   忽略每行前面开始出的空格字符。
-c  检查文件是否已经按照顺序排序。如果乱序,则输出第一个乱序的行的相关信息,最后返回1。
-C  检查文件是否已排好序,如果乱序不输出内容,仅返回1。
-d  排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f  排序时,将小写字母视为大写字母。
-i  排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m  将几个排序好的文件进行合并。
-M  将前面3个字母依照月份的缩写进行排序。
-n  使用『纯数字』进行排序(默认是以文字型态来排序的)。
-u  意味着是唯一的(unique),输出的结果是去完重了的。
-r  以相反的顺序来排序(默认升序)。
-o<输出文件>        将排序后的结果存入指定的文件。
-t<分隔字符>        指定排序时所用的栏位分隔字符。
-k                   以哪个区间 (field) 来进行排序的意思。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。《起始域为0,即第一个起始栏位置为0(比较古老)》
--help    显示帮助。
--version 显示版本信息。
[-k field1[,field2]] 按指定的列进行排序。

参考实例

把排序结果输出到原文件中 (用重定向可就不行了)

[root@localhost ~]# sort -r 1 -o 1
[root@localhost ~]# cat 1
5:a:E
4:b:D
3:c:C
2:d:B
1:e:A
[root@localhost ~]# sort -t : -k 2 1   (不能和-n一起使用)
5:a:E
4:b:D
3:c:C
2:d:B
1:e:A
3:f:F

合并文件会自动排序

[root@localhost ~]# sort 1 2 >3

从公司英文名称的第二个字母开始进行排序

[root@localhost ~]# sort -t ' ' -k 1.2  1.txt
baidu 11231 666
sohu 1235 304
goole 10000 200
guge 5234 123
释:
“-k 1.2”表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。
其中baidu因为第二个字母是a而名列榜首;sohu和google第二个字符都是o,但是sohu的h在google的o前面,所以sohu排在第二行,google排在第三行;guge就只能排在第四行了。[root@localhost ~]# sort -t ' ' -k 1.2,1.2 -k 3,3nr 1.txt
baidu 11231 666
sohu 1235 304
goole 10000 200
guge 5234 123
释:
“-k 1.2,1.2”表示只对第二个字母进行排序。对于员工工资进行排序。
使用“-k 3,3”这是最准确的表述,表示只对本域进行排序,如果省略了后面的3,就变成对第3个域开始到最后一个域位置的内容进行排序。

Once we were also envied ~

Linux Sort将文件中的各行进行排序相关推荐

  1. linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...

  2. linux文件前三行如何排序,Sort工具Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。sort 常见选项b 忽略每行前面开始出...

    Sort工具 Linux sort命令用于将文本文件内容加以排序. sort可针对文本文件的内容,以行为单位来排序. sort 常见选项 b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照 ...

  3. linux文件删除指定内容,Linux bash删除文件中含“指定内容”的行功能示例

    本文实例讲述了Linux bash删除文件中含"指定内容"的行功能.分享给大家供大家参考,具体如下: #!/bin/sh # 功能: 删除文件中含"指定内容"的 ...

  4. linux命令---查找文件中的内容

    linux命令---查找文件中的内容 [yang@localhost ~]$ cat 1.txt |egrep '123456789|second'-------匹配123456789或者second ...

  5. linux删除具有指定内容的文件,Linux bash删除文件中含“指定内容”的行功能示例...

    本文实例讲述了Linux bash删除文件中含"指定内容"的行功能.分享给大家供大家参考,具体如下: #!/bin/sh # 功能: 删除文件中含"指定内容"的 ...

  6. C语言文件操作(二)对指定txt文件中的N个数排序

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #def ...

  7. Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计.Linux中我们可以利用以下命令简单高效的实现这一功能. 需要用到的命令简介 cat命令 cat命令主要有三大功能 ...

  8. linux 检索全部文件中的中文词汇,linux – 获取所有文件中的单词计数

    我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件.我需要在每个文件中得到'Hello'字样的计数,并将结果显示为'File'a'has'Hello'n times','Fil ...

  9. linux在所有文件中查找某一个字符

    转载自 https://www.cnblogs.com/wangkongming/p/3852328.html # find <directory> -type f -name " ...

最新文章

  1. 高并发下接口幂等性技术方案
  2. Ext JS Designer 1.0.5 发布
  3. 【PB开发】第2天: 应用创建及窗体配置
  4. 机器学习之单变量线性回归(Linear Regression with One Variable)
  5. 选择技术方向都要考虑哪些因素
  6. 阿里云华北区挂了。。。
  7. pandans导出Excel并将数据保存到不同的Sheet表中
  8. Matlab三种归一化方法
  9. PHP中如何判断属性类型,php – 如何获取doctrine实体属性的类型
  10. docker学习1--dockerfile
  11. mysql高可用架构 - MHA简介-01
  12. 安卓日记本设计内容介绍_天一 | 教你捷径,使用VB开发安卓程序!
  13. JavaScript——exec和match
  14. 无线通信基础(二):高斯噪声中的检测
  15. springboot后端接受图片到本地
  16. SX1278与STM8L
  17. js将 每个单词的首字母大写
  18. 出国(澳大利亚)要求材料
  19. 项目优化:当使用redis减少数据库压力时,遇到redis写入失败,造成读取数据问题的解决方案
  20. 毕业论文的流程图怎么画

热门文章

  1. Python 散点图 回归拟合 带误差 各参数详解(2)
  2. [嵌入式]stm32内部温度传感器实验
  3. 使用谷歌搜索的20条高效技巧 20 Google Search Tips to Use Google More Efficiently
  4. R语言使用fix函数通过编辑器自定义修改数据变量的名称、例如、使用fix函数自定义修改dataframe数据列的名称
  5. 为什么加了屏蔽罩,测试效果反而不好?
  6. 抗疫先锋 | 戴尔科技集团与您共克时艰
  7. 本地Docker环境
  8. Python主要用途有哪些?学完Python可以做什么?
  9. 怀旧服服务器能容纳多少人同时在线,《魔兽世界》怀旧服国服在线人数有多少 在线人数统计介绍...
  10. 生成指定位数UUID