首页 技术 正文
技术 2022年11月14日
0 收藏 589 点赞 2,325 浏览 2094 个字

Linux sort命令用于将文本文件内容加以排序。

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

参数如下:

-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-k 指定以哪一列来排序。
-u 去重。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help 显示帮助。
--version 显示版本信息。

1.sort直接用就可以对文件进行排序

准备测试文件
[root@www ~]$ cat sorttest.txt
hello
java
php
world
betty
php[root@www ~]$ sort sorttest.txt
betty
hello
java
php
php
world

2.sort -u的选项是去重,在输出行中去除重复行

[root@www ~]$ sort -u sorttest.txt
betty
hello
java
php
world

3.sort -n 选项是按照数值大小排序,这样就不会出现10出现在2之前了

准备个文件
[root@www ~]$ cat num.txt如果直接排序,结果如下
[root@www ~]$ sort num.txt要想按照数值大小排序,需要加-n选项
[root@www ~]$ sort -n num.txt

4.sort -o 选项把结果输出到指定文件中,用重定向命令也是可以的

[root@www ~]$ sort -n -o test num.txt
[root@www ~]$ cat test或者直接如下
[root@www ~]$ sort -n num.txt > test
[root@www ~]$ cat test

5.sort的-t选项指定分隔符

这个文件有三列,列与列之间用“-”隔开了,第一列表示年,第二列表示月,第三列表示日。那么我想以月来排序,也就是以第二列来排序,如何利用sort实现?幸好,sort提供了-t选项,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数了。

准备文件
[root@www ~]$ cat date
--
--
--
--如果直接排序的话,结果如下
[root@www ~]$ sort date
--
--
--
--如果以第二列月份排序的话,如下
[root@www ~]$ sort -n -k2 -t'-' date
--
--
--
--

6.sort -k选项是指定以哪一列来排序

准备测试文件如下
[root@www ~]$ cat company
facebook
alibaba
tengxun
baidu
google 如果直接排序,是以第一列的字母排序
[root@www ~]$ sort company
alibaba
baidu
facebook
google
tengxun 第一列排序还可以指定第一列
[root@www ~]$ sort -k1 company
alibaba
baidu
facebook
google
tengxun
[root@www ~]$ sort -k1 -t' ' company
alibaba
baidu
facebook
google
tengxun 如果以第二列数值大小排序
[root@www ~]$ sort -k2n -t' ' company
facebook
tengxun
alibaba
baidu
google

改下文件,如果第二列相同,按第三列大小排序,如何操作?

[root@www ~]$ cat company
facebook
alibaba
tengxun
baidu
google [root@www ~]$ sort -k2n -t' ' -k3n company
alibaba
facebook
tengxun
baidu
google

如果第二列相同,第三列降序排序,如何操作呢?

[root@www ~]$ sort -k2n -t' ' -k3nr company
facebook
alibaba
tengxun
baidu
google

如果-k 和 -u 联合使用,有什么效果呢?

[root@www ~]$ sort -n -k2 company
alibaba
facebook
tengxun
baidu
google [root@www ~]$ sort -n -k2 -u company
facebook
tengxun
baidu
google

发现第二列相同的alibaba删除掉了

7.sort -M选项,按月份的前三个缩写字母来排序

[root@www ~]$ cat month
DEC
JAN
NOV
AUG
MAY[root@www ~]$ sort -M month
JAN
MAY
AUG
NOV
DEC

8.sort -r选项是逆序排列

[root@www ~]$ cat sorttest.txt
hello
java
php
world
betty
php[root@www ~]$ sort -r sorttest.txt
world
php
php
java
hello
betty
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,020
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,772
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,850