linux sort 命令实用手册
Linux 中的sort
命令是一个很实用的工具,用于对文本内容
以行
为单位进行ASCII 码
排序,默认按照升序
进行排序(当然也可以按照降序
)。
sort
命令的格式如下:
sort `参数` `文件名`
这里不打算介绍其完整的使用方法,只介绍其重用方法,其完整手册可参看man sort
。
比如,我们有如下文本内容
,可以看到其内容是无序的,其中有两行333
和bbb
:
>>> 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
参数,可以对重复行
进行去重
,可以看到只剩下一行333
和bbb
:
>>> 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 命令实用手册的更多相关文章
- Linux sort命令中文手册(info sort翻译)
说明: (1).本手册只挑选了有用的信息进行翻译,如要查看完完整整的内容,请自行info sort. (2).译文中,在括号中使用了"注"的,为本人所加,非原文内容,助于理解和说明 ...
- linux uniq 命令实用手册
Linux uniq 命令用于处理文本内容中的重复行. 这里我们只介绍其常用参数,其完整用法可参见man uniq. 例如,我们有如下文件内容: >>> cat log.txt __ ...
- linux awk 命令实用手册
0,简介 Linux awk 是一个实用的文本处理工具,它不仅是一款工具软件,也是一门编程语言.awk 的名称来源于其三位作者的姓氏缩写,其作者分别是Alfred Aho,Peter Weinberg ...
- linux sort 命令详解(转 )
linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...
- linux sort命令学习
linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...
- 【转】linux sort 命令详解
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...
- linux sort 命令详解
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...
- Linux sort命令详解
linux之sort用法 sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容, ...
- Linux sort命令使用方法
sort命令在Linux中主要用于对文件进行排序,并将排序结果输出.sort命令输入可以是指定的文件和数据流.本文主要介绍sort命令的基本语法和常见使用实例. sort命令语法 sort命令格式:s ...
随机推荐
- [WPF]是时候将WPF控件库从.Net Framework升级到.NET Core 3.1
1. 升级到Core的好处 去年中我曾考虑将我的控件库项目Kino.Toolkit.Wpf升级到.NET Core,不过很快放弃了,因为当时.NET Core是预览版,编译WPF还需要使用最新的Vis ...
- Spring Boot整合Servlet,Filter,Listener,访问静态资源
目录 Spring Boot整合Servlet(两种方式) 第一种方式(通过注解扫描方式完成Servlet组件的注册): 第二种方式(通过方法完成Servlet组件的注册) Springboot整合F ...
- vue 跳转 同一路由不刷新问题解决
vue跳转同一路径时,路由参数改变,但页面无法更新 问题原因 vue路由切换实际是组件间的切换,引用相同组件的时候,页面就无法更新 解决方案 方案1.watch监听路由参数变化,并重新渲染(谨慎选择) ...
- python 爬虫之 urllib库
文章更新于:2020-03-02 注:代码来自老师授课用样例. 一.初识 urllib 库 在 python2.x 版本,urllib 与urllib2 是两个库,在 python3.x 版本,二者合 ...
- 2016蓝桥杯报纸页数(C++C组)
题目: 报纸页数X星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已.每张纸印有4版.比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸.我们在太空中 ...
- 操作文件-取出一个60s内log日志中ip访问次数超过100次的ip
import timea=0while True: d={} f = open(r"/Users/**juan/Downloads/access.log",encoding=&qu ...
- hadoop(八)集群namenode启动ssh免密登录(完全分布式五)|10
前置章节:hadoop集群配置同步(hadoop完全分布式四)|10 启动namenode之前: 1. 先查看有无节点启动,执行jps查看,有的话停掉 [shaozhiqi@hadoop102 ~]$ ...
- Thymeleaf+SpringBoot+Mybatis实现的家庭财务管理系统
项目简介 项目来源于:https://gitee.com/darlingzhangsh/graduation_project 本系统是基于Thymeleaf+SpringBoot+Mybatis.是非 ...
- 数据结构和算法(Golang实现)(8.2)基础知识-分治法和递归
分治法和递归 在计算机科学中,分治法是一种很重要的算法. 字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题. 直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合 ...
- 数组的增加与删除(push、pop、unshift、shift)
1. 数组增删和换位置(原数组将被修改) push() //在数组最后面插入项,返回数组的长度 数组1改后的长度 = 数组1.push(元素1); pop() //取出数组中的最后一 ...