linux sort 内存,Linux sort的四个小技巧

像排序这种事情,用C/C++可以写,但很麻烦,交给sort就好了,功能很强大的。

1、按照多个列排序(列间空格分开):

测试数据:

先按照第1列排序,再第2列的命令:

2011-11-20补充:必须加-s选项,表示stable sort,即两列排序互相不打扰。

$ cat ./test

1       x

5       8

1       a

$ sort -s -k 1 -k 2 ./test

1       a

1       x

5       8

2、sort默认是字典序比较,我们可以-n让它按照强制数字转换,以解决0199< 100的问题。

$ cat ./test

100

05

1

#默认,字典序,显然5<1是错误的……

$ sort ./test

05

1

100

#加-n,强制转化为数字比较

$ sort -n ./test

1

05

100

3、补充一个结合awk的,有时间一定好好学一下awk,太XX了……

需求:给定下述文件

9 19

8 12

9 17

8 100

要求按照第一列排列并去重,保留第2列大的那个,即输出:

8 100

9 17

命令来了:

sort -s -k1n -k2nr |awk '!a[$1]++'

4、再补充,好吧,想到一个比awk还简单的(awk耗内存大)

sort -s -k1n -k2nr ./aa | sort -u -k1n -k2n,1

sort也支持unique的-k2n,1后面的,1是取第一行,按照我们的需求,这第一行必须是第一列排序后,第二列最大的在前面,因此这么就可以了。

没有发现相关文章...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值