Linux命令之sort命令

Linux命令之sort命令Linuxsort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。

一、命令简介

  Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。

二、使用示例

1、默认按照第一列的ASCII 码次序排序

[root@test1 tmp]# cat 4.log |sortadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinroot:x:0:0:root:/root:/bin/bash

2、按照数字排序

使用-n参数按照数字排序

[root@test1 tmp]# cat 1.log
4 a
10 b
1 c
[root@test1 tmp]# cat 1.log |sort -n
1 c
4 a
10 b

3、指定列排序

使用-k参数指定列排序,例如指定第8列时间进行排序

[root@test1 tmp]# ll -h |sort -k 8
total 99M
-rw-r–r–. 1 wuhs wuhs 125 Feb 19 10:01 2.log
-rw-r–r–. 1 root root 2.4K Feb 19 10:10 3.log
-rw-r–r–. 1 root root 183 Feb 19 10:25 4.log
-rw-r–r–. 1 root root 19 Feb 19 10:47 5.log
-rw-r–r–. 1 root root 425K Feb 9 13:46 s125.test1.sql
-rw-r–r–. 1 wuhs wuhs 0 Feb 19 14:04 1.log
-rw-r–r–. 1 root root 98M Feb 9 14:07 s125.test2.sql

4、排序后去重

使用-u参数去重

[root@test1 tmp]# cat 2.log
序号 企业名称 公网IP地址
1 国海证券 113.16.174.228
3 兴业证券 61.154.12.206
2 平安证券 211.157.16.114
3 兴业证券 61.154.12.206
[root@test1 tmp]# cat 2.log |sort -u
1 国海证券 113.16.174.228
2 平安证券 211.157.16.114
3 兴业证券 61.154.12.206
序号 企业名称 公网IP地址

5、按照文件大小进行排序

使用-h参数,按照人类习惯阅读方式比较文件大小

[root@test1 tmp]# cat 1.log1M200K1002G[root@test1 tmp]# cat 1.log |sort -h100200K1M2G

6、排序取反

使用-r参数取反,即改为降序排序

[root@test1 tmp]# cat 5.log
1 test 1
2 test2 2
[root@test1 tmp]# cat 5.log |sort -r
2 test2 2
1 test 1

7、自定义分隔符后指定列排序

使用-t参数自定义分隔符

[root@test1 tmp]# cat 4.log |sort -t “:” -k 5,使用:作为分隔符,以第5列的值排序在这里插入图片描述

8、将两个文件合同同时对合并后的内容排序

[root@test1 tmp]# sort 2.log 5.log > 6.log
[root@test1 tmp]# cat 6.log
1 test 1
1 国海证券 113.16.174.228
2 test2 2
2 平安证券 211.157.16.114
3 兴业证券 61.154.12.206
3 兴业证券 61.154.12.206
序号 企业名称 公网IP地址

三、参数说明

1、语法格式

  • sort [OPTION]… [FILE]…
  • sort [OPTION]… –files0-from=F

2、参数说明

参数 说明
-b, –ignore-leading-blanks 忽略前面空格。
-d, –dictionary-order 根据字典顺序排序,仅比较数字 字母 空格等字符。
-f, –ignore-case 忽略大小写。
-g, –general-numeric-sort 按一般数值比较
-i, –ignore-nonprinting 仅比较可打印字符。
-M, –month-sort 月份
-h, –human-numeric-sort 使用易读性数字(例如: 2K 1G)
-n, –numeric-sort 纯数字排列
-R, –random-sort 根据哈希值随机排序。
–random-source=FILE 从文件中获取随机字节
-r, –reverse 降序排序,默认为升序
–sort=WORD 按单词排序:
-V, –version-sort 按照文本中的自然编号排序
–batch-size=NMERGE 使用临时文件一次最多合并n个合并输入
-c, –check, –check=diagnose-first 检查已排序的输入;不排序
-C, –check=quiet, –check=silent 与-c参数类似,但是不报告第一行错误
–compress-program=PROG 用PROG压缩临时文件,用PROG-d解压临时文件
–debug debug,用于排查错误用法
–files0-from=F 从指定的文件读取输入,文件F中以NUL结尾的名称;
-k, –key=KEYDEF 通过键排序;KEYDEF给出位置和类型
-m, –merge 合并已排序的文件;不排序
-o, –output=FILE 将结果写入文件而不是标准输出
-s, –stable 通过禁用最后的比较来稳定排序
-S, –buffer-size=SIZE 使用主内存缓冲区大小
-t, –field-separator=SEP 使用SEP代替非空到空转换
-T, –temporary-directory=DIR 多个选项指定多个目录将DIR用于临时变量,而不是$TMPDIR或/tmp
–parallel=N 将同时运行的排序数更改为N
-u, –unique 与-c一起,检查是否严格排序;如果没有-c,则只输出相等运行的第一个
-z, –zero-terminated 如果没有-c,则只输出相等运行的第一个
–help 查看帮助
–version 获取版本信息

今天的文章Linux命令之sort命令分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30516.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注