Linux技巧(二):Linux sort命令深入解析 | sort -k M.m,N.n 命令详解

前言

目的:逐步带你了解sort排序,解开-k参数的困惑。

困惑之处:sort -k 1.2,1.2

1.2是什么意思?1.2,1.2又是什么鬼?为什么sort -k 1.2和sort -k 1.2,1.2的排序结果不一致?

本文带你逐步解析。

一、sort语法、参数、及其注意事项

1、语法

语法:

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

2、参数 

 参数:

-b 忽略每行前面开始出的空格字符。从第一个可见字符开始比较。

-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。

-f 排序时,忽略字符大小写.

-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。

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

-m 将几个排序好的文件进行合并。

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

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

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

-r 降序排列(默认是升序)。

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

-k field1[,field2] 按指定的列进行排序。

-u 排序后相同的行只显示一次(默认按整行进行比较)

--help 显示帮助。

--version 显示版本信息。

3、注意事项 

1、排序时,默认是按每行/每个域的首字符排序,数字的优先级要大于字符的优先级

2、不指定升序还是降序时,默认是升序

4、重点难点

重点掌握:-t -n -o  -u  - k,尤其是-k。

其他的参数相对比较容易掌握。 

二、案例数据准备

#vim salary.txt 编辑测试文件数据(工资表,里面的数据是虚拟的)

google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500
sohu 30 1500

#vim tt.txt

dell 100 10020 ee
lenovo 200 12202 a
huawei 500 13004 ff
cisco 300 24005 bb

#cp tt.txt t.txt
#vim t.txt

随意在里面添加一些空格,便于暴露出了-t的不足之处。 

dell 100   10020 ee
lenovo 200     12202   a
huawei 500     13004   ff
cisco 300     24005            bb

三、通过案例,由浅入深了解sort

1、-r 指定排序

#sort salary.txt      默认根据首行的首字母&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值