sort:可以实现依据不同的数据类型进行排序,其语法及常用参数格式如下:

sort [-bcfMnrtk][源文件][-o 输出文件]

补充说明:sort可针对文本文件的内容,以行为单位来排序。

参  数:

-b 忽略每行前面开始出的空格字符。

-c 检查文件是否已经按照顺序排序。

-f 排序时,忽略大小写字母。

-M 将前面3个字母依照月份的缩写进行排序。

-n 依照数值的大小排序。

-o 将排序后的结果存入指定的文件。

-r 以相反的顺序来排序。

-t 指定排序时所用的栏位分隔字符。

-k 选择以哪个区间进行排序。

1 sort的工作原理

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

[root@gitlab ~]$ cat seq.txt

banana

apple

pear

orange

pear

[root@gitlab ~]$ sort seq.txt

apple

banana

orange

pear

pear

2 sort的-u选项

它的作用很简单,就是在输出行中去除重复行。

[root@gitlab ~]$ sort -u seq.txt

apple

banana

orange

pear

pear由于重复被-u选项无情的删除了。

3 sort的-r选项

[root@gitlab ~]$ cat number.txt

1

3

5

7

11

2

4

6

10

8

9

[root@gitlab ~]$ sort number.txt  --sort默认的排序方式是升序

1

10

11

2

3

4

5

6

7

8

9

[root@gitlab ~]$ sort -n number.txt      --排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面

1

2

3

4

5

6

7

8

9

10

11

[root@gitlab ~]$ sort -n -r number.txt     --r表示降序,n表示按数字进行排序

11

10

9

8

7

6

5

4

3

2

1

4 sort的-o选项

由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。

但是,如果你想把排序结果输出到原文件中,用重定向就需要使用追加的方式。

[root@gitlab ~]$ sort -n -r number.txt > number.txt

[root@gitlab ~]$ cat number.txt

[root@gitlab ~]$

number清空了。所以我们需要使用-o选项,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。

[root@gitlab ~]$ sort -n -r number.txt -o number.txt

[root@gitlab ~]$ cat number.txt

11

10

9

8

7

6

5

4

3

2

1

5 sort的-t选项和-k选项

[root@gitlab ~]$ cat facebook.txt

banana:30:5.5

apple:10:2.5

pear:90:2.3

orange:20:3.4

[root@gitlab ~]$ sort -n -k 2 -t : facebook.txt

apple:10:2.5

orange:20:3.4

banana:30:5.5

pear:90:2.3

这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)

指定了间隔符之后,就可以用-k来指定列数了。我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。

6 其他的sort常用选项

-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写

-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1

-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1

-M会以月份来排序,比如JAN小于FEB等等

-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。

linux 输入8个字母进行排序,Linux下使用sort进行排序相关推荐

  1. linux 输入8个字母进行排序,Linux排序命令sort详解

    语法格式sort [ -A ] [ -b ] [ -c ] [ -d ] [ -f ] [ -i ] [ -m] [ -n ] [ -r ] [ -u ] [ -o OutFile ] [ -t Ch ...

  2. vt linux tty中文,Linux输入子系统和tty关系影述

    多转自 1.Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱动层.输入子系统核心层(Input Core)和输入子系统事件处理层(Event H ...

  3. linux常用的文本编辑器(tr,uniq,sort,sed,awt)

    sort命令文本排序工具 sort只影响输出结果,不影响源文件 sort以行为单位,以每行的ascii码值得大小进行升序排序. 格式:sort 待排序文件:将文件内的文本内容进行排序,a到z的这种 . ...

  4. Bitonic sort(双调排序)

    最近在上Udacity的<Introduction to parallel programming>课程,里面介绍了一种很有趣的平行算法--Bitonic sort(双调排序)算法.在课程 ...

  5. 9个元素换6次达到排序序列_十大算法排序(Sorting Algorithm) Study notes

    (自己手打的python实现代码以及整理的各路大神总结的知识点) 自用学习笔记,由于基于北美cs学习,文章大量中英混杂(谨慎食用) 十大排序算法: 插入排序 1)Insertion Sort 简单插入 ...

  6. 合并和排序 Linux 上的文件

    在 Linux 上合并和排序文本的方法有很多种,但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中,还是以某种方式组织它,让它更易于使用.在本文中,我们将查看一些用于排序和合并文 ...

  7. linux输出管道内容,Linux 输入/输出和管道(|)及相关的命令

    此简书不再维护. 在系统默认情况下,shell从键盘读(接收)命令的输入,并将命令的输出显示(写)到屏幕上.shell的标准命令输入是Standard Input,标准输出(Standard Outp ...

  8. linux显示mem进行排序,Linux查看系统负载(CPU和MEM考虑)

    查看占用CPU最高的10个进程 [tidb@:vg_adn_tidbCkhsTest:172.31.30.62 ~/tidb-ansible]$ps aux | grep -v PID | sort ...

  9. 安卓linux输入代码在哪里,输入  |  Android 开源项目  |  Android Open Source Project

    Android 输入子系统名义上由遍历系统多个层的事件管道组成. 输入管道 在最低层,物理输入设备会生成描述状态更改(例如按键按压和轻触接触点)的信号.设备固件以某种方式编码和传输这些信号,例如向系统 ...

最新文章

  1. java线程——join
  2. R语言ggplot2包旋转(Rotate)可视化图像轴标签实战
  3. 咕泡-装饰器 decorator 设计模式笔记
  4. boot loader:Grub
  5. 第三讲:WCF介绍(3)
  6. 又发现一个关于R文件丢失的问题
  7. DirectX和DirectShow介绍和区别
  8. python twisted安装
  9. linux防火墙添加udp 123,centos下的ntp的安装和配置 (注意 防火牆的udp 123要打開,不然會不能用)...
  10. 根据工作年限预测工资python代码实现
  11. JavaFX UI控件教程(十四)之Tree View
  12. Servlet之第一个web项目
  13. TensorFlow 2 Object Detection API 教程: 安装
  14. HSQL转换成MapReduce过程
  15. 4 读写文件_WEB安全之SQL注入(4)——读写文件
  16. webstorm中代码添加单引号、双引号快捷键
  17. Html 页面底部添加版权信息11
  18. CSS盒子模型box-sizing属性详解
  19. 计算机语言中的计数器是什么,程序计数器的作用_程序计数器pc中存放的是什么...
  20. 2018-11高级软考试题考查知识点总结(试题1-20)

热门文章

  1. 埃森哲java开发怎么样_技术丨埃森哲Data Privacy 、商汤科技、平安科技人工智能(AI)类日常实习...
  2. IEC61850笔记--开源代码libIEC61850(二)
  3. openwrt 恢 复 出厂设置
  4. Step by Step WebMatrix网站开发之二:使用WebMatrix(3)
  5. 中国互联网Web2.0百强企业
  6. Zed Shaw:程序员的常见健康问题
  7. ICMP flood(ICMP洪水攻击)
  8. java计算机毕业设计基于springboot+vue+elementUI的旅游网站(源码+数据库+Lw文档)
  9. 无线列表html,无线web 开发经验(2)—— HTML
  10. 简介公开密钥算法和证书生成