免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: dmidecode
打印 上一主题 下一主题

[文本处理] 请问如何用awk排序 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-08-14 12:53 |只看该作者
回复 9# cao627


    $1 是数字, 1 ,2 ,3 ,4 ,5 ,209 , 1024 之类的,将他排下序,就这要求!

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
12 [报告]
发表于 2013-08-14 14:12 |只看该作者
awk ‘!a[$1]++' file | wc -l
你的文件执行这条命令时们长不长,统计结果行数不多的话:
awk '{print >$1”.out"} file
再对生成的.out文件排序串起来
不知可行。@dmidecode

论坛徽章:
0
13 [报告]
发表于 2013-08-14 15:08 |只看该作者
按你提供的命令来执行,速度比较快,原文件有 72197988 行,现在变成只有230行了,这个怎么回事呢?去重了?

#time awk '!a[$1]++' urls.sort |wc -l
230

real    0m37.646s
user    0m30.181s
sys     0m5.027s

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
14 [报告]
发表于 2013-08-14 16:08 |只看该作者
$1 是数字, 1 ,2 ,3 ,4 ,5 ,209 , 1024 之类的

说明你的$1 只有 230个不同的数字

论坛徽章:
0
15 [报告]
发表于 2013-08-14 16:36 |只看该作者
回复 14# cao627


重复行 不能删掉,希望保留,无非就是sort -k 1 这个功能拿到 awk 中来做

   

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
16 [报告]
发表于 2013-08-14 17:04 |只看该作者
重复行 不能删掉,希望保留,无非就是sort -k 1 这个功能拿到 awk 中来做


awk '{print >$1”.out"} file  
这个命令作用就是在当前目录下生成230个文件(既然你的文件有10g,你的当前目录所在的分区要有10g以上空间),然后对72197988 行中的每个成员说:请你们走进属于自己的文件中去。

最后你按文件名的顺序串起这230个文件,就是你对72197988 行排序后的要求。

论坛徽章:
0
17 [报告]
发表于 2013-08-14 17:55 |只看该作者
文件非常大的shell层面处理不过来的,写程序排吧

论坛徽章:
1
2015亚冠之柏太阳神
日期:2015-09-29 10:00:55
18 [报告]
发表于 2013-11-28 09:51 |只看该作者
弱弱的问句,sort不就是C写的,shell调用的很多都是C写的程序。。为啥还要用C写,难道大家还能写出比sort还强的程序?我觉得这种大文件只能用分布式的方法解决,多台并行处理,集中式单任务处理,你能快多少。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP