功能:排序

语法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

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


[root@Jesse ~]# cat c.txt

7 July
8 August
9 September
10 October
11 November
12 December
1 January
2 February
3 March
4 April
5 May
6 June
[root@Jesse ~]# sort -c c.txt
sort: c.txt:4: disorder: 10 October  //说明未按照某种顺序进行排列,如果什么也不显示,则说明已按某种顺序分类。
--------------------------------------------------------------------------------------------------[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500
[root@Jesse ~]# cat b.txt
3 ladygaga 1
5 ladygaga 9
0 ladygaga 5
9 ladygaga 4
6 ladygaga 2
8 ladygaga 3
7 ladygaga 0
1 ladygaga 6
4 ladygaga 7
2 ladygaga 8
[root@Jesse ~]# sort -m a.txt c.txt //将两个文件内容整合到一起
7 July
8 August
9 September
10 October
11 November
12 December
1 January
2 February
3 March
4 April
5 May
6 June
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500


 

进行月份排序
[root@Jesse ~]# cat c.txt
 July
 August
 September
 October
 November
 December
 January
 February
 March
 April
 May
 June
[root@Jesse ~]# sort -M c.txt
 January
 February
 March
 April
 May
 June
 July
 August
 September
 October
 November
 December


[root@Jesse ~]# sort -M c.txt -o d.txt  //将内容排序后导入到d.txt这个文件。


[root@Jesse ~]# cat e.txt

1
2
3
4
5
6
7
8
[root@Jesse ~]# sort -r e.txt   //逆序进行排列
8
7
6
5
4
3
2
1


[root@Jesse ~]# cat a.txt

google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500
[root@Jesse ~]# sort -t" " -k 3 a.txt  //出现空格的地方作为第一域进行分类
gugeee 120 3000
sohuee 100 4500
google 110 5000
baidue 100 5010
########################################################################有关-k 的实例演示
########################################################################准备工作:
[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5000
gugeee 120 3000
sohuee 101 4500


按照字母进行排序,注意 -t 后面的引号里需要有一个空格,这里的单引号,双引号都无所谓

[root@Jesse ~]# sort -t" " -k 1 a.txt
baidue 100 5000
google 110 5000
gugeee 120 3000
sohuee 101 4500
[root@Jesse ~]# sort -t' ' -k 1 a.txt
baidue 100 5000
google 110 5000
gugeee 120 3000
sohuee 101 4500

按照以空格为分割域的第二域进行排序
[root@Jesse ~]# sort -t' ' -k 2 a.txt
baidue 100 5000
sohuee 101 4500
google 110 5000
gugeee 120 3000

我们来测试下第二域相同的情况
[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500

通过以下实例我们发现,以空格为分割域,第二域相同的时候,第三域是没有任何次序的,如果遇到第二域相同,第三域也要进行排序的时候,我们怎么办呢
[root@Jesse ~]# sort -n -t' ' -k 2 a.txt
baidue 100 5010
sohuee 100 4500
google 110 5000
gugeee 120 3000

看如下演示,如果第二域相同,那么我们将从第三域进行升降处理
[root@Jesse ~]# sort -n -t' ' -k 2 -k 3 a.txt
sohuee 100 4500
baidue 100 5010
google 110 5000
gugeee 120 3000

如果我想让以空格为分割域的第三域进行倒叙排列
[root@Jesse ~]# sort -n -t' ' -k 3r a.txt
baidue 100 5010
google 110 5000
sohuee 100 4500
gugeee 120 3000

如果我想让以空格为分割域的第三域以正序进行排列
[root@Jesse ~]# sort -t' ' -k 3n a.txt
gugeee 120 3000
sohuee 100 4500
google 110 5000
baidue 100 5010

如果第二域有两个数相同,那么我们将以升降来排序
[root@Jesse ~]# sort -t' ' -k 2n -k 3n a.txt
sohuee 100 4500
baidue 100 5010
google 110 5000
gugeee 120 3000

如过只是想从第三个字母起进行排序
[root@Jesse ~]# sort -t' ' -k 1.3 a.txt
gugeee 120 3000
sohuee 100 4500
baidue 100 5010
google 110 5000

如果只想以第一域的第三个字符进行排序:-k 1.3,1.3 表示只以第三个字母进行排序
[root@Jesse ~]# sort -t' ' -k 1.3,1.3 a.txt
gugeee 120 3000
sohuee 100 4500
baidue 100 5010
google 110 5000

n表示进行排序,r表示逆序
[root@Jesse ~]# sort -t" " -k 2nr a.txt
gugeee 120 3000
google 110 5000
baidue 100 5010
sohuee 100 4500

以第二域进行排序,如果遇到重复的,就删除
[root@Jesse ~]# sort -t" " -k 2n -u  a.txt
baidue 100 5010
google 110 5000
gugeee 120 3000
本文出自 “jesse's blog” 博客

sort命令总结的更多相关文章

  1. shell之sort命令

    1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...

  2. 【转】linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

  3. sort命令

    1.默认情况下,sort命令,以字母序进行文本排序sort word.txt2.如果想对数字进行排序,可以使用-n参数sort num.txt -n3指定列排序下面是对passwd文件,以冒号(:)进 ...

  4. Linux sort命令

    200 ? "200px" : this.width)!important;} --> 介绍 sort命令是一个文本排序命令,它能对标准输入和文本文件进行排序,并且能将结果通 ...

  5. 3. sort命令

    转自:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分 ...

  6. linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

  7. [shell基础]——sort命令

    sort命令 sort是按照ASCII码升序输出,且是从首字符依次向后比较的 常见选项      -c 测试文件是否已经被排序 -r  逆向排序      -n 按照数字数值大小排序 -t  指定分割 ...

  8. linux sort 命令详解(转 )

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

  9. linux sort命令学习

    linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...

  10. 【转】linux中的sort命令

    转自:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分 ...

随机推荐

  1. Markdown简短教程

    前言 很早以前就已经接触到Markdown语言,由于各种原因到今天才认真的学习.其实Markdown语言还是比较简单的,在用中学就可以了. 正文 本文只是介绍而没有说明其它可选语法,详细可以参考[Ma ...

  2. Mac实用技巧

    1. 程序员Mac新装机必备 Mac很玄这个大家都承认,但是鄙人觉得程序员用Mac才能真正发挥它的功效.下面就说说我的Mac使用: 基本编程软件:xcode,这个东西不仅仅是对mac的界面程序开发有用 ...

  3. 阅读记录:Learning multiple layers of representation(杂乱笔记)

    典型的浅层学习结构: 传统隐马尔可夫模型(HMM).条件随机场 (CRFs).最大熵模型(Maxent).支持向量机(SVM).核回归及仅含单隐层的多层感知器(MLP)等. 局部表示,分布式表示和稀疏 ...

  4. wireshark抓一抓,看是不是另一个机器也企图DHCP

    早上的问题,昨晚四点睡,今早九点半起... 到公司处理此问题,不知道相关性大不大..

  5. C++基础回顾1(数据类型, 控制语句, 数组)

    最近两天打开本科学校的C++教材,快速回顾了一下C++方面的内容.虽然书本内容比较基础,但是还是有些知识点值得自己强化记忆.分几篇文章,加上自己的理解记录如下. 先回顾面向过程的部分. C++数据类型 ...

  6. Hive 6、Hive DML(Data Manipulation Language)

    DML主要是对Hive 表中的数据进行操作的(增 删 改),但是由于Hadoop的特性,所以单条的修改.删除,其性能会非常的低所以不支持进行级操作: 主要说明一下最常用的批量插入数据较为常用的方法: ...

  7. shell输出加颜色

    shell输出加颜色 #cat a.sh #!/bin/sh blue=`tput setaf 4` reset=`tput sgr0` echo "${blue}[INFORMATION] ...

  8. myeclipse实现Servlet实例(1) 通过继承servlet接口实现

    1.在myeclipse新建web project,配置Tomcat(在myeclipse的Window--preferences) 2.然后在src新建servlet文件( 此处放在com.tsin ...

  9. 去掉MySQL字段中的空格

    mysql replace 函数   语法:replace(object,search,replace)   意思:把object中出现search的全部替换为replace   案例: SQL Co ...

  10. android 点击桌面图标,打开手机浏览器进入对应的站点

    做一个假的adnroid app.要实现点击桌面图标.打开手机浏览器进入对应的站点,实现方法非常easy import android.app.Activity; import android.con ...