命令格式

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. ActiveMQ JMS 在发邮件中的使用

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久 ...

  2. C++中不常用关键字

    mutable关键字 关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员.我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会 ...

  3. stm32上的Lava虚拟机开发进度汇报(2)

    现在已经基本完成了Lava主要函数的编写,但还是有几个问题没解决: 1.实心圆和实心椭圆 2.FillArea 3.GetWord 其中FillArea如果没有很好的解决方法就算了,GetWord用g ...

  4. Codeforces Round #333 (Div. 2) A. Two Bases 水题

    A. Two Bases Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/602/problem/ ...

  5. Codeforces Gym 100513F F. Ilya Muromets 线段树

    F. Ilya Muromets Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100513/probl ...

  6. vector<int> v2 = 42; 为何非法

    C++ Primer 第四版,第十三章“复制控制” 习题13.2,为何vector<int> v2 = 42; 不能编译? 百度贴吧里的一位楼主给出了答案,本人认为正确,特此引用: 参考链 ...

  7. [AngularJS] Directive using another directive by 'require'

    Directive can use another directive though 'require' keyword. angular.module('docsTabsExample', []) ...

  8. JS 操作 radio input(cc问卷管理)

    1.选中特定的单选按钮 function showDetail(content){ $("input[name^='radio']").removeAttr("check ...

  9. 项目源码--Android应用商店源码

      下载源码   技术要点: 1.互联网应用 客户端框架 2.综合应用开发所 有技术 3.安装应用的管理 4. HTTP网络通信技 术 5.下载安装.评论 框架 6.使用.版本升级 等统计方案 7.源 ...

  10. iOS利用单例实现不同界面间的数据传输

    首先写一个单例类,继承NSObject check.h文件中 @property(strong ,nonatomic) UITable * Table; @property(strong ,nonit ...