sort 命令是Linux系统下一种对文件排序的工具,sort 命令功能十分强大,是 Shell 脚本编程是常用的文件排序工具。

1.命令格式:

sort [选项]... [文件]...

或:sort [选项]... --files0-from=F

2.命令功能:

  串联排序所有指定文件并将结果写到标准输出。

3.常用参数:

-b      忽略每行前面开始出的空格字符。
-c      检查文件是否已经按照顺序排序。
-d      排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f      忽略字母大小写
-g      按通用数值排序,支持科学计数法
-h      使用易读性数字(例如: 2K 1G)
-i      排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m      将几个排序好的文件进行合并。
-M      将前面3个字母依照月份的缩写进行排序。
-k      排序从POS1开始,若指定POS2,则POS2结束,否则以pos1排序
-n      按字符串数值排序,与-g区别为不转为浮点数
-o<输出文件>    将排序后的结果输出写入指定文件
-r      降序排序,默认为升序
-t<分隔字符>    指定列的分割符
-u      去除重复的行
  --help      显示帮助。
  --version    显示版本信息

4.常用示例:

示例1:默认排序,默认情况下,sort命令,以字母序进行文本排序。

 root@localhost:tmp$cat word.txt
 one
 two
 three
 four

 root@localhost:tmp$sort word.txt
 four
 one
 three
 two

示例2:数字排序,如果想对数字进行排序,可以使用-n参数。

 root@localhost:tmp$ cat num.txt 

 root@localhost:tmp$ sort num.txt -n

示例3:指定列排序

  sort排序的时候,可以按字段分割的数据进行排序。-t参数表示行的分割字符,-k表示第几列。当然,可以进行降序排序,-r参数可以实现。
  下面是对passwd文件,以冒号(:)进行分割,然后对第三列以数字方式进行降序排序。

 root@localhost:etc$ cat passwd
 daemon:x:::daemon:/usr/sbin:/usr/sbin/nologin
 bin:x:::bin:/bin:/usr/sbin/nologin
 sys:x:::sys:/dev:/usr/sbin/nologin
 ::sync:/bin:/bin/sync
 games:x:::games:/usr/games:/usr/sbin/nologin
 ::man:/var/cache/man:/usr/sbin/nologin
 ::lp:/var/spool/lpd:/usr/sbin/nologin
 mail:x:::mail:/var/mail:/usr/sbin/nologin
 root@localhost:etc$  -nr passwd
 mail:x:::mail:/var/mail:/usr/sbin/nologin
 ::lp:/var/spool/lpd:/usr/sbin/nologin
 ::man:/var/cache/man:/usr/sbin/nologin
 games:x:::games:/usr/games:/usr/sbin/nologin
 ::sync:/bin:/bin/sync
 sys:x:::sys:/dev:/usr/sbin/nologin
 bin:x:::bin:/bin:/usr/sbin/nologin
 daemon:x:::daemon:/usr/sbin:/usr/sbin/nologin

示例4:文件夹大小排序

  在du的时候,加上-h可以使用易读性数字,比如2k,1g,3M这种。sort也支持-h参数。
  比如,du一个文件夹下的目录大小后,想以文件大小进行排序。由于du -h的结果是3k,2M,1G这种,不能简单的按数字排序。所以,可以使用-h参数。具体如下:

 root@localhost:tmp$ du -h
 .0G    ./test2
 .0K    ./test3
 316M    ./test
 .3G    .
 root@localhost:tmp$ du -h |sort -hr
 .3G    .
 .0G    ./test2
 316M    ./test
 .0K    ./test3

示例5:系统进程内存占用排序

  查看系统进程中,内存占用最多的前5个进程信息

 root@localhost:tmp$ |
 linux     ?      Sl    5月07 : compiz
 root          tty7     Ssl+  5月07  : /usr/bin/X -core : -seat seat0 -auth /var/run/lightdm/root/: -nolisten tcp vt7 -novtswitch
 linux      ?       Sl    5月07   : /usr/lib/evolution/evolution-calendar-factory
 linux      ?        Sl    5月07   : nautilus -n
 linux      ?        Sl    5月07   : gnome-terminal

示例6:对文件内容进行去重

  如果文件内容有很多重复的,需要进行去重。sort也是支持的,可以通过-u参数使用

 root@localhost:tmp$cat word.txt
 one
 two
 two
 three
 three
 three
 four
 four
 four

 root@localhost:tmp$sort -u word.txt
 four
 one
 three
 two

示例7:将sort输出内容写入文件

  在shell中,一般将控制台内容写入文件,可以使用重定向,但如果想把sort的排序内容写回文件,则不能使用重定向。则需要-o参数。具体如下:

 root@localhost:tmp$cat word.txt
 one
 two
 three
 four
 root@localhost:tmp$sort word.txt > word.txt
 root@localhost:tmp$cat word.txt #输出为空

 root@localhost:tmp$sort word.txt -o word.txt
 root@localhost:tmp$sort -u word.txt
 four
 one
 three
 two

linux常用命令:sort 命令的更多相关文章

  1. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  2. Linux 常用的压缩命令有 gzip 和 zip

    Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...

  3. Linux基础:sort命令总结

    本文只总结一些常用的用法,更详细的说明见man sort和sort --help. sort命令 sort命令用于串联排序指定文件并将结果写到标准输出. sort可以指定按照何种排序规则进行排序,如按 ...

  4. LINUX常用配置及命令

    一.   Fedora系统配置 1.      [设置网卡IP] 步骤如下: 1)     用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...

  5. 【转】linux中的sort命令

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

  6. Linux常用的基础命令总结

    man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...

  7. linux常用60条命令 转

    Linux必学的60个命令   Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命 ...

  8. linux常用配置文件和命令总结

    常用配置文件说明: 1..设置-n永远生效:Vim的配置文件:命令模式想永久生效, ~/.vimrc,新建文件,在里面输入保存即可 2.设置别名永远生效:在~/.bashrc  修改当前用户家目录里的 ...

  9. Java线上问题排查思路及Linux常用问题分析命令学习

    前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...

  10. 入门学习Linux常用必会命令实例详解

    Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, ...

随机推荐

  1. jmeter中Implementation中几个选项的区别

    在jmeter发送http请求时,Implementation下拉框中有几个选项,如下: 那到底有什么区别呢?发送http请求改用哪种方法呢.百度后查之,没答案.我们还是看官方文档吧.官方文档解释如下 ...

  2. dhroid - Perference

    SharedPreferences 是我们开发android使用很多的工具通常我们是这样使用的 SharedPreferences share=getSharedPreferences("n ...

  3. em 单位

    借 Lea verou 的话: 当某些值相互依赖时,应该把它们的相互关系用代码表达出来. 通常情况下,我们会希望字号和其他尺寸能够跟父元素的字号建立关联,此时em就很好的表达了这种关系. 在CSS V ...

  4. MySQLCouldn't find MySQL manager

    mysql出现MySQLCouldn't find MySQL manager错误的解决办法 最近我的一个linux服务器上的网站全部无法打开.....访问网站没有提示.....只出现该页无法显示的错 ...

  5. OpenCV学习笔记之课后习题练习3-3

    3.3 创建一个100*100的拥有三个通道的二维字节类型矩阵,将其元素全部置0.通过cvPtr2D函数将指针指向中间通道(绿色),以(20,5)和(40,20)为顶点间画一个绿色的长方形. cvPt ...

  6. ubuntu16.04下安装pycharm

    下面开始教程 先在PyCharm官网下载安装包 链接:https://www.jetbrains.com/pycharm/download/#section=linux 选择平台为Linux,可以看到 ...

  7. PAT-GPLT L1-035 - 情人节 - [大水题]

    题目链接:https://www.patest.cn/contests/gplt/L1-035 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  8. codeforces 761D - Dasha and Very Difficult Problem

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  9. LightOJ 1030 - Discovering Gold - [概率DP]

    题目链接:https://cn.vjudge.net/problem/LightOJ-1030 You are in a cave, a long cave! The cave can be repr ...

  10. android 控制POS机图文打印(二)

    上一篇文章结束了ESC/POS的指令集,没看过的可以去看一下,可以当作工具文档来使用的 android 控制POS机图文打印(一) 这一篇正式介绍如何使用POS机来打印图文信息. 首先介绍一下,ESC ...