Linux 中的sort 命令是一个很实用的工具,用于对文本内容为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序)。

sort 命令的格式如下:

sort `参数` `文件名`

这里不打算介绍其完整的使用方法,只介绍其重用方法,其完整手册可参看man sort

比如,我们有如下文本内容,可以看到其内容是无序的,其中有两行333bbb

>>> cat log.txt
_______________
555
333
2222
666
333
bbb
CCC
aaa
ccc
bbb

1,基本使用

使用sort 命令,不加任何参数,对该文件进行排序,如下,可看到已按照ASCII 码 进行了排序:

>>> sort log.txt
________________
2222
333
333
555
666
CCC
aaa
bbb
bbb
ccc

使用-f 参数可以忽略字符大小写进行排序,注意观察CCC 的位置:

>>> sort -f log.txt
___________________
2222
333
333
555
666
aaa
bbb
bbb
CCC
ccc

使用-r 参数可以进行反向排序:

>>> sort -r log.txt
___________________
ccc
bbb
bbb
aaa
CCC
666
555
333
333
2222

使用-u 参数,可以对重复行进行去重,可以看到只剩下一行333bbb

>>> sort -u log.txt
___________________
2222
333
555
666
CCC
aaa
bbb
ccc

使用-o 参数,可以将排序结果写到某个文件(也可以是原文件),如下,将文件内容输出到log.txt2

sort -u log.txt -o log.txt2

使用-n 参数,可以将排序结果按照数字大小进行排序,可以看到2222 排在了666 下面,这里只关心数字之间的次序就行(不需要关心字母数字的关系):

>>> sort -n log.txt
___________________
aaa
bbb
bbb
ccc
333
333
555
666
2222

2,进阶使用

sort 命令还可以对行内容,先进行分割,再按照某列进行排序,这时需要用到-t-k 参数。

-t 参数用于设置以什么字符为分隔符,-k 参数用于以分割后的哪一列进行排序,如果没有设置,默认会按照第一列进行排序。

比如,我们有如下内容,每行内容以逗号,分割,注意第4行只有一列ddd

>>> cat log2.txt
________________
bbb,333
aaa,2222
ccc,66
ddd,
bbb,555

我们以逗号, 进行分割,并按照第一列进行排序,如下:

>>> sort -t , log2.txt
______________________
aaa,2222
bbb,333
bbb,555
ccc,66
ddd,

按照第一列的第二个字符开始排序,如下1.2 表示从第一列的第二个字符开始排序:

>>> sort -t , -k 1.2 log2.txt
_____________________________
aaa,2222
bbb,333
bbb,555
ccc,66
ddd,

按照第二列,并以数字大小进行排序,如下:

>>> sort -t , -k 2 -n log2.txt
——————————————————————————————
ddd,
ccc,66
bbb,333
bbb,555
aaa,2222

先按照第二列,再按照第一列进行排序,如下:

>>> sort -t , -k 2 -k 1  log2.txt
_________________________________
ddd,
aaa,2222
bbb,333
bbb,555
ccc,66

下面总结一下以上讲到的参数及其含义:

参数 含义
-f 将小写字母视为大写字母,即忽略大小写
-r 反向排序
-u 去重
-o 输出到文件
-n 以数字大小进行排序
-t 设置分隔符
-k 设置按照第几列排序,与-t 参数配合使用

(完。)

linux sort 命令实用手册的更多相关文章

  1. Linux sort命令中文手册(info sort翻译)

    说明: (1).本手册只挑选了有用的信息进行翻译,如要查看完完整整的内容,请自行info sort. (2).译文中,在括号中使用了"注"的,为本人所加,非原文内容,助于理解和说明 ...

  2. linux uniq 命令实用手册

    Linux uniq 命令用于处理文本内容中的重复行. 这里我们只介绍其常用参数,其完整用法可参见man uniq. 例如,我们有如下文件内容: >>> cat log.txt __ ...

  3. linux awk 命令实用手册

    0,简介 Linux awk 是一个实用的文本处理工具,它不仅是一款工具软件,也是一门编程语言.awk 的名称来源于其三位作者的姓氏缩写,其作者分别是Alfred Aho,Peter Weinberg ...

  4. linux sort 命令详解(转 )

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

  5. linux sort命令学习

    linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...

  6. 【转】linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

  7. linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

  8. Linux sort命令详解

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

  9. Linux sort命令使用方法

    sort命令在Linux中主要用于对文件进行排序,并将排序结果输出.sort命令输入可以是指定的文件和数据流.本文主要介绍sort命令的基本语法和常见使用实例. sort命令语法 sort命令格式:s ...

随机推荐

  1. docker 搭建keepalived+nginx高可用

    前言 最近工作 中 有用到keepalived,就想着 在 本地 搭建一套环境验证一下相关的功能.因为创建虚拟机比较麻烦,就借助  docker来搭建这样 一套 环境 ,顺带学习 巩固下docker的 ...

  2. B. Lost Number【CF交互题 暴力】

    B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...

  3. Java并发基础08. 造成HashMap非线程安全的原因

    在前面我的一篇总结(6. 线程范围内共享数据)文章中提到,为了数据能在线程范围内使用,我用了 HashMap 来存储不同线程中的数据,key 为当前线程,value 为当前线程中的数据.我取的时候根据 ...

  4. UnboundLocalError,探讨Python中的绑定

    绑定 将python闭包之前,先梳理一下闭包中的绑定操作. 先看看2个相关的错误 NameError 和UnboundLocalError When a name is not found at al ...

  5. Golang入门(2):一天学完GO的基本语法

    摘要 在配置好环境之后,要研究的就是这个语言的语法了.在这篇文章中,作者希望可以简单的介绍一下Golang的各种语法,并与C和Java作一些简单的对比以加深记忆.因为这篇文章只是入门Golang的第二 ...

  6. SpringMVC(五):JSON

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  7. MTK Android 设置下添加一级菜单[ZedielPcbTest]

    功能描述:Android7.1.2 设置下添加一级菜单[ZedielPcbTest],点击ZedielPcbTest,启动ZedielPcbTest.apk应用. 编译:需要在out目录删除Settt ...

  8. python3启动子进程之 os.fork()

    python3启动子进程之 os.fork() 先了解python3 os.fork()  使用说明 在生物学家开始克隆研究之前,计算机科学家就拥有成功的克隆历史.他们克隆了进程,尽管他们没有将其称为 ...

  9. 萌新带你开车上p站(一)

    本文作者:萌新 0x01前言 这一系列文章为pwnable.krToddlr’s Bottle的全部题解,其中有三道题目相对而言稍难或者说比较经典,单独成篇,其他题目的题解放在一起发出来. 0x02f ...

  10. TP5快速入门

    一.查询 //order支持使用数组对多个字段的排序,例如order(['order','id'=>'desc']) //group方法只有一个参数,并且只能使用字符串. //having方法只 ...