命令格式

sort [OPTION]... [FILE]...

命令参数

-b, --ignore-leading-blanks
  忽略开头的空白字符。

-d, --dictionary-order
  只考虑空白字符、字母和数字字符。

-f, --ignore-case
  排序时不区分大小写。

-g, --general-numeric-sort
  根据常规数值排序。

-i, --ignore-nonprinting
  只考虑可打印的字符。

-M, --month-sort
  根据月份排序, JAN < ... < DEC。

-h, --human-numeric-sort
  根据适合阅读的数值比较(例如,2K 1G)。

-n, --numeric-sort
  根据字符串数数值比较。

-R, --random-sort
  根据随机 hash 排序。

--random-source=FILE
  从指定的文件中获取随机字节。

-r, --reverse
  反向排序。

-V, --version-sort
  根据版本排序。

-c, --check, --check=diagnose-first
  检查目标文本是否已经排序而不会进行排序。

-C, --check=quiet, --check=silent
  类似 -c 选项,但不报告第一个无序行。

-k, --key=POS1[,POS2]
  对 POS1 与 POS2 之间的字符排序,而不是整个文本行。

-m, --merge
  合并已排好序的文件而不会进行排序。

-o, --output=FILE
  将排序结果输出至指定文件而不是标准输出。

-t, --field-separator=SEP
  定义字段的空格符。默认情况下,字段是由空格或制表符分开的。

-T, --temporary-directory=DIR
  使用 DIR 作为临时目录而不是 $TMPDIR 或 /tmp,可用多个选项指定多个目录。

-z, --zero-terminated
  以 0 字节而非新行作为行尾标志。

--help
  显示帮助信息。

--version
  显示版本信息。

实例

测试文件 testfile:

mysql    39216       10.21.28.47       Oct  2 14:29
mail 4981 10.6.0.28 Oct 1 10:54
root 2672 10.6.0.32 Sep 27 15:53
mail 7724 10.6.0.32 Sep 14 11:40
root 18122 10.6.0.32 Aug 30 14:36
mysql 20441 10.21.28.58 Jun 22 21:14
root 5961 10.6.0.32 Jun 6 09:38
admin 60327 10.6.0.203 Mar 11 23:03
mysql 10885 10.6.0.203 Jan 20 12:53
admin 9917 10.6.0.32 Jan 16 17:01

a) 对文本行排序。

[huey@huey-K42JE cmdline]$ sort testfile
admin 60327 10.6.0.203 Mar 11 23:03
admin 9917 10.6.0.32 Jan 16 17:01
mail 4981 10.6.0.28 Oct 1 10:54
mail 7724 10.6.0.32 Sep 14 11:40
mysql 10885 10.6.0.203 Jan 20 12:53
mysql 20441 10.21.28.58 Jun 22 21:14
mysql 39216 10.21.28.47 Oct 2 14:29
root 18122 10.6.0.32 Aug 30 14:36
root 2672 10.6.0.32 Sep 27 15:53
root 5961 10.6.0.32 Jun 6 09:38

b) 根据第 2 列字段排序。

[huey@huey-K42JE cmdline]$ sort -k 2 testfile
mysql 10885 10.6.0.203 Jan 20 12:53
root 18122 10.6.0.32 Aug 30 14:36
mysql 20441 10.21.28.58 Jun 22 21:14
root 2672 10.6.0.32 Sep 27 15:53
mysql 39216 10.21.28.47 Oct 2 14:29
mail 4981 10.6.0.28 Oct 1 10:54
root 5961 10.6.0.32 Jun 6 09:38
admin 60327 10.6.0.203 Mar 11 23:03
mail 7724 10.6.0.32 Sep 14 11:40
admin 9917 10.6.0.32 Jan 16 17:01

c) 将第 2 列字段作为数字反向排序。

[huey@huey-K42JE cmdline]$ sort -k 2nr testfile
admin 60327 10.6.0.203 Mar 11 23:03
mysql 39216 10.21.28.47 Oct 2 14:29
mysql 20441 10.21.28.58 Jun 22 21:14
root 18122 10.6.0.32 Aug 30 14:36
mysql 10885 10.6.0.203 Jan 20 12:53
admin 9917 10.6.0.32 Jan 16 17:01
mail 7724 10.6.0.32 Sep 14 11:40
root 5961 10.6.0.32 Jun 6 09:38
mail 4981 10.6.0.28 Oct 1 10:54
root 2672 10.6.0.32 Sep 27 15:53

Linux 命令 - sort: 行排序文本文件的更多相关文章

  1. Linux命令去重统计排序

    利用Linux命令进行文本按行去重并按重复次数排序   linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去 ...

  2. Linux命令总结_sort排序命令

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

  3. linux 命令 — sort、uniq

    sort uniq sort:对行或者文本文件排序 uniq:去除重复的行 常用 sort -n file.txt 按数字进行排序 sort -r file.txt 按逆序进行排序 sort -M f ...

  4. Linux命令sort和uniq 的基本使用

    uniq 123.txt  去除连续重复uniq -u 123.txt  保留唯一uniq -c 123.txt  去重并计算出现的个数sort -n 123.txt | uniq -c 排序后去重s ...

  5. linux命令: sort

    参考 linux sort 命令详解 http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html 1 sort的工作原理 sort将文 ...

  6. Linux删除重复行 排序和不排序的做法--转载

    本文部分翻译自这里,来自 Jadu Saikia 的博客,这个博客上有很多非常有用的小技巧,有空可以多看看. 通常如果我们想获取一个文件里不重复的行的时候,我们可以直接通过 sort -u 命令,先把 ...

  7. linux 命令 sort

    Linux下的sort排序命令详解(一) 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [zook ...

  8. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  9. 利用Linux命令行进行文本按行去重并按重复次数排序

    最近杂事太多,正事进展缓慢.Fighting! linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并按重 ...

随机推荐

  1. UI进阶 CocoaPods的安装使用步骤

    一. CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具.在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与 ...

  2. flex 弹性合模型

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...

  3. extjs grid renderer用法【转载】

    今天在做项目时,需要在列表中的某列添加一个超链接,首先要取得当前选中行的数据,判断数据类型,然后链接到不同的页面,研究下.发现ExtJs提供了一个很强的方法如下: var cm = new Ext.g ...

  4. PostgreSQL的 initdb 源代码分析之十二

    继续分析 /* Now create all the text config files */ setup_config(); 将其展开: 实质就是,确定各种参数,分别写入 postgresql.co ...

  5. applicationContext.xml存放的位置

    web.xml中classpath:和classpath*:  有什么区别? classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件 ...

  6. Java模拟登录系统抓取内容【转载】

    没有看考勤的习惯,导致我的一天班白上了,都是钱啊,系统也不发个邮件通知下....     为了避免以后还有类似状况特别写了个java模拟登录抓取考勤内容的方法(部分代码来自网络),希望有人修改后也可以 ...

  7. Linux设备模型分析之kset(基于3.10.1内核)

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 内核版本:3.10.1   一.kset结构定义 kset结构体定义在include/linux/kobject.h ...

  8. POJ 3026 Borg Maze

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7998   Accepted: 2675 Descrip ...

  9. iOS 2D绘图详解(Quartz 2D)之Transform(CTM,Translate,Rotate,Scale)

    前言:Quartz默认采用设备无关的user space来进行绘图,当context(画板)建立之后,默认的坐标系原点以及方向也就确认了,可以通过CTM(current transformation ...

  10. iOS开发——实用篇Swift篇&状态栏操作

    状态栏操作 在Swift开发过程中,针对状态栏操作的过程有很多. 1.在ViewController中操作当前ViewController的状态栏 /** 隐藏状态栏 */ override func ...