sort命令在Linux中主要用于对文件/字符串进行排序,并将排序结果输出。sort命令输入可以是指定的文件或数据流。本文主要介绍sort命令的基本语法和常见使用实例。

sort命令语法

sort命令格式:sort [选项] 文件名

选项:

 -n:按数字排序。默认是以ASCII值进行排序。
-t:指定分隔符。默认分隔符是空格或者tab键分隔
-b:使用域进行分类,忽略前面空格。
-r:逆向排序
-u:删除所有重复行
-o:后面跟文件名,存储sort输出结果。主要是可以实现原地置换。比如sort file.txt -o file.txt
-c:判断文件是否已经分类
-m:合并两个分类文件

选项使用说明:

(1)-n选项,按照数字进行排序。默认情况下sort命令是以ASCII值进行排序。下面查看sort不带参数n和带参数n的执行情况。

$ echo -e "123\n26\n3" |sort
123
26
3
$ echo -e "123\n26\n3" |sort -n
3
26
123

(2)-r选项,以降序排序输出。默认情况下是以升序输出。

$ echo -e "123\n26\n3" |sort -nr
123
26
3

(3)-u选项,去掉重复行,相当于uniq命令。

$ echo -e "123\n26\n26\n3\n123" |sort -u
123
26
3

(4)-c选项,判断文件是否已经分类,如果已分类,不输出内容。如果未分类,提示无序。

$ echo -e "12\n36\n45" |sort -nc
$ echo -e "12\n36\n5" |sort -nc
sort:-:3:无序: 5

说明:例子中带参数-n表示以整数排序是否有序。

(5)-t选项,指定分隔符。默认情况下sort命令分隔符是以空格或者多个空格做为分隔符。

$ echo -e "Java:12\nPython:3\nRuby:21" | sort -t ':' -nrk2
Ruby:21
Java:12
Python:3

(6)-o选项。后面跟文件名,保存sort输出结果。主要是可以实现原地置换。

$sort -t':' -nrk3 file.txt -o file.xt

sort命令典型实例

(1)文件中行分隔符为冒号":",要求先按第三列数字大小排序,再按照第一列数字大小排序,结果以降序输出

$ echo -e "1:Python:15\n2:Python:5\n3:Ruby:25\n4:Python:15" | sort -t':' -k3 -k1 -nr
3:Ruby:25
4:Python:15
1:Python:15
2:Python:5

(2)将文件c.txt中的内容按照第一列内容进行去重。

ADD:USER="";
MOD:USER="";
ADD:USER="";
LST:USER="";
ADD:USER="";
LST:USER="";
MOD:USER="";

执行命令:cat c.txt | sort -t':' -k1,1 -u

$ cat c.txt |sort -t':' -k1, -u
ADD:USER="";
LST:USER="";
MOD:USER="";

小结

sort命令基本用法和常用实例大概就是这些了。。遇到排序相关问题就可以使用sort解决啦。。如果生疏了,就来这里看看。。

Linux sort命令使用方法的更多相关文章

  1. linux sort 命令详解(转 )

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

  2. Linux 常用命令使用方法大搜刮

    Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入 ...

  3. linux sort命令学习

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

  4. 【转】linux sort 命令详解

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

  5. linux sort 命令实用手册

    Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如下: sort `参数` `文件名 ...

  6. linux sort 命令详解(转载)

    转载:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html#3374576 sort是在Linux里非常常用的一个命令,管排序的 ...

  7. linux sort 命令详解

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

  8. Linux sort命令中文手册(info sort翻译)

    说明: (1).本手册只挑选了有用的信息进行翻译,如要查看完完整整的内容,请自行info sort. (2).译文中,在括号中使用了"注"的,为本人所加,非原文内容,助于理解和说明 ...

  9. Linux sort命令详解

    linux之sort用法 sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容, ...

随机推荐

  1. C# 知识特性 Attribute,XMLSerialize,

    C#知识--获取特性 Attribute 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,可在运行时使用“反射”查询特性,获取特性集合方 ...

  2. ajax的跨域解决方案(java+ajax)

    简单的建立一个后台项目 新建servlet: 内容如下: package a; import java.io.IOException; import java.io.PrintWriter; impo ...

  3. CentOS之正则表达式

    支持linux正则表达式的工具有:grep:实现查找,sed,awk:都是流式编辑器,可以实现查找和替换,并且把替换的文本输出到屏幕上. grep工具 grep [-cinvABC] 'word' - ...

  4. web app 、native app、hybrid app比较

    web app .native app.hybrid app比较 产品新人学习路 关注 2017.06.04 14:52* 字数 1887 阅读 11476评论 1喜欢 15 之前做讨论的时候,提出了 ...

  5. vim more

      启用鼠标 :set mouse=a 跳转到下一函数 下一个函数开头 ]] 当前函数末尾/下一个函数的末尾 ][ 当前函数开头/上一个函数的开头 [[ 选项可以按任何顺序生效,可以放在文件名前或后边 ...

  6. .netLinq动态Where条件

    文章介绍全网最佳方式使用EF+Linq实现多条件组合查询:代码中没有使用到网上主流自定义Expression表达式而是采用linq原生态功能编写示例直观.易懂,且有效解决自定义Expression不支 ...

  7. (二)apache atlas配置和运行

    上一篇文章,我们已经构建出了altas的安装包,所以我们继续使用安装包配置和运行atlas 首先解压atlas压缩包,授予bin目录下的执行权限 1.默认启动atlas cd atlas/bin/ p ...

  8. 【python】python与正则 re的主要用到的方法列举

    [直接上代码] #coding=utf-8#1.先将正则表达式的字符串形式编译为Pattern实例 #2.使用Pattern实例处理文本并获得匹配结果 #3.最后使用Match实例获得消息,进行其他操 ...

  9. .bat脚本基本命令语法 http://www.cnblogs.com/iTlijun/p/6137027.html

    这个是我找到的非常好的一篇文章了: 目录批处理的常见命令(未列举的命令还比较多,请查阅帮助信息)     1.REM 和 ::     2.ECHO 和 @     3.PAUSE     4.ERR ...

  10. 13. 字符串转为json对象或json数组

    ##########1.json字符串转json数组########### var str="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30 ...