sort cut 命令的常用用法
sort命令介绍:
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!
1 sort的工作原理
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
2 sort的-u选项
它的作用很简单,就是在输出行中去除重复行。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
pear
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
pear
[rocrocket@rocrocket programming]$ sort -u seq.txt
apple
banana
orange
pear
pear由于重复被-u选项无情的删除了。
3 sort的-r选项
sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。
[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort number.txt
1
2
3
4
5
[rocrocket@rocrocket programming]$ sort -r number.txt
5
4
3
2
1
4 sort的-o选项
由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。
[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt -----no!no!no!
[rocrocket@rocrocket programming]$ cat number.txt
[rocrocket@rocrocket programming]$
看,竟然将number清空了。
就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。
[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt
[rocrocket@rocrocket programming]$ cat number.txt
5
4
3
2
1
5 sort的-n选项
你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。
我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!
[rocrocket@rocrocket programming]$ cat number.txt
1
10
19
11
2
5
[rocrocket@rocrocket programming]$ sort number.txt (默认是升序)
1
10
11
19
2 (纳尼???2竟然比10大,哈哈,,,因为只比较的是第一位)
5
[rocrocket@rocrocket programming]$ sort -n number.txt
1
2
5
10
11
19
6 sort的-t选项和-k选项
如果有一个文件的内容是这样:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。
7 其他的sort常用选项
-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1
-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-M会以月份来排序,比如JAN小于FEB等等
-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
转载于:https://blog.51cto.com/tenderrain/1651535
sort cut 命令的常用用法相关推荐
- cut命令的详细用法
名称:cut 使用权限:所有使用者 用法:cut -cnum1-num2 filename 说明:显示每行从开头算起 num1 到 num2 的文字. 范例: shell>;>; cat ...
- RHEL7/CentOS7 ip 命令常用用法,代替 ifconfg/route/ifup/ifdown
注:从 RHEL7/CentOS7 开始,net-tools 包从系统中移除,ifconfg/route/ifup/ifdown 等命令均消失,转而以 ip 命令代替上述命令.因此本篇主要列举了如何使 ...
- shell特殊符号cut命令,sort、wc、uniq命令,tee、tr、split命令
shell特殊符号cut命令 特殊符号 "*" 通配符,代表零个或多个字符 "?" 代表一个字符 "#" 注释字符 "\" ...
- linux下的zz命令,linux中cut命令的用法
本文主要记录一下Linux中cut命令的用法. 1. cut命令使用说明 Usage: cut OPTION... [FILE]... cut命令用于选出FILE文件中每一行的某些部分,然后打印到标准 ...
- 【githubshare】Linux sed 命令行常用汇总:useful-sed,收集了 sed 命令行的诸多常见用法,可用于快速处理文本文件
Linux sed 命令行常用汇总:useful-sed,收集了 sed 命令行的诸多常见用法,可用于快速处理文本文件. 仓库内提供了不少示例,如输出文件首行内容,正则匹配替换文本内容.删除空文件.删 ...
- linux目录搜索ip的命令,Linux常用命令全集 详细用法
内容较长,建议先看目录 目录 Linux常用命令全集 详细用法 基础 相关介绍 控制台切换 快捷键 查看帮助 查看系统相关信息 查看ip地址 关机重启 目录与文件 相关介绍 查看文件 cat命令 le ...
- Nmap的常用命令和高级用法
一.Nmap常用命令如下,是一位大佬总结,并且进行了标注,非常好. 1. nmap -sT 192.168.96.4 //TCP连接扫描,不安全,慢 2. nmap -sS 192.168.96.4 ...
- 日更第11天:Linux常用命令之chmod用法
大家好,我是胖邰.今天是挑战的第11天,真没想到自己能坚持过半,先表扬一下自己.这次文章主要介绍使用chmod的用法.来吧,让我们一起了解下. 1. 命令简介 chmod 命令是用来修改某个文件或文件 ...
- 日更第13天:Linux常用命令之cat用法
1. 命令简介 cat 命令官方的解释是用来连接所有指定文件并将结果写到标准输出.简单理解它最基本的功能是可以查看文件的内容.除此之外,我们还可以利用cat来创建文件或者把几个文件内容进行合并输出.功 ...
最新文章
- 专家访谈:为什么我们需要Erlang
- Oracle数据库在进程中是,由浅入深讲解Oracle数据库进程的相关概念
- matlab调用哈希表,ros与matlab联动使用
- centos7 qt之程序编译 cant start process “cmake”
- 现代软件工程 作业 结对编程 模板
- Centos 7 GCC 7.3编译器安装方法及C++17标准测试示例
- html小游戏代码_研发实践:Mozilla分享如何开发一款WebVR小游戏
- axios get 跨域_axios网络交互应用-Vue
- 湖仓一体是否会掀起金融业的下一波数字浪潮?
- linux进程属性,linux进程属性
- html跑马灯代码大全(图片文字移动代码)
- TextWatcher实现输入关键字筛选数据
- 百度、谷歌搜索引擎接口
- 三个“清洁代码”技巧将使您的开发团队效率提高 50%
- c语言的typedef struct 对应java参数类型,JNA实战系列:02JNA与C语言中的数据类型映射以及复杂结构体传参示例...
- 装修细节注意问题 装修细节有哪些
- 电信光纤无线路由器(光猫)的设置方法
- MATLAB实现模拟推导π的值
- Oracle 官网下载地址
- c语言中pair的头文件,C++中使用pair是否一定要包含头文件utility
热门文章
- MATLAB【十四】————调用深度库生成exe,批量运行三层文件夹下图片,保存结果
- Git学习记录(一)
- String.Format格式说明
- datagrid分页问题(前后跳页)《控件版》
- ASP.NET实现数据图表
- windows7 64位机上配置MinGW+Codeblocks+ wxWidgets
- win mysql修改端口号_Windows10系统下查看mysql的端口号并修改的教程图解
- php中连接两个值,php - 如何从两个表的连接中选择一个值? - SO中文参考 - www.soinside.com...
- matlab一元线性回归分析_建模开讲:一元线性回归分析及SPSS软件实现
- android调用相册和摄像头,调用Android摄像头与打开相册