命令格式

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. URAL 2066 Simple Expression (水题,暴力)

    题意:给定三个数,让你放上+-*三种符号,使得他们的值最小. 析:没什么好说的,全算一下就好.肯定用不到加,因为是非负数. 代码如下: #pragma comment(linker, "/S ...

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

    继续分析: make_postgres(); 展开: 目的是创建postgres数据库. cmd是:/home/pgsql/project/bin/postgres" --single -F ...

  3. C++ 内存相关

    1.C++的内存管理可分为以下几个部分: 栈:记录程序的执行过程. 堆:采用new,delete申请释放内存. 自由存储区:对应于C中使用malloc,free申请释放内存. 全局存储区:也叫静态存储 ...

  4. 【M15】了解异常处理(exception handling)的成本

    1.为了在运行期处理异常,程序必须做大量额外的工作.比如,即使抛出异常,也必须保证离开作用域的栈上对象执行析构方法.因此,必须记录try语句的进入点和离开点,记录catch语句能够处理的异常等.这就意 ...

  5. Java网页数据采集器[续篇-远程操作]【转载】

    本期概述 上期我们学习了html页面采集后的数据查询, 但这仅仅是在本地查询数据库,如果我们想通过远程操作来进行数据的采集,存储和查询,那又该怎么做呢? 今天我们一起来学习下:如何通过本地客户端远程访 ...

  6. 2015南阳CCPC C - The Battle of Chibi DP

    C - The Battle of Chibi Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description Cao Cao made up a ...

  7. C#制作在线升级程序

    //这是一个webservice private AppUpdate.UpdateServ UpdateSvr; private void button1_Click(object sender, S ...

  8. CCBReader

    #ifndef _CCB_CCBREADER_H_ #define _CCB_CCBREADER_H_ #include "cocos2d.h" #include "Ex ...

  9. Ununtu 12.04 gedit安装插件Source Code Browser

    1. 安装ctags: sudo apt-get install exuberant-ctags 2. 打开https://github.com/Quixotix/gedit-source-code- ...

  10. xcode 3.x版本中的Executables 到xcode 4.x中怎么找不到了?

    转自:http://zhidao.baidu.com/question/327868169.html 1 在Scheme处选择Edit Scheme 2 点击Run(Debug) 3 在Argumen ...