免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 7257 | 回复: 33
打印 上一主题 下一主题

搜索字符生成新文件问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-05 23:23 |只看该作者 |倒序浏览
提取1个txt文件的不同字符然后将其生成一个新txt文件并按照数字大小自动排序

比如a文件包含
sad   132  asdfw 122  asdfdw 452  sadfsaw 443 12    1   322323  3232    sadfdw   http  ://  23e123132


我想把其中位数为3的 132 121  452  443等  提取并生成新的txt  请问 如果处理?  另:我要处理的txt特别大 大约11G 是否需要特殊处理? 谢谢 请指点

论坛徽章:
0
2 [报告]
发表于 2009-01-05 23:41 |只看该作者
呵呵,这么大,要个效率高的,和你等高手

论坛徽章:
0
3 [报告]
发表于 2009-01-05 23:51 |只看该作者

如果不考虑文件大小

能帮写个处理 看看吗  万分感谢

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2009-01-06 00:01 |只看该作者
try
awk '{for(i=1;i<=NF;i++)if($i~/\<[0-9][0-9][0-9]\>/)printf $i" ";printf "\n"}' ur-file >newfile

论坛徽章:
0
5 [报告]
发表于 2009-01-06 07:20 |只看该作者
[test@erpdataserver ~]$ grep -Eo  ' [0-9]{3} ' ufile |sort -n
122
132
443
452

论坛徽章:
0
6 [报告]
发表于 2009-01-06 07:49 |只看该作者
如果需提取的不一定是数字
  1. awk '{for (i=1;i<=NF;i++) if (length($i)==3) printf $i" ";printf "\n"}' urfile >newfile.txt
复制代码


如果需提取的一定是数字
  1. awk '{for (i=1;i<=NF;i++) if (length($i)==3 && $i+0==$i) printf $i" ";printf "\n"}' urfile >newfile.txt
复制代码

[ 本帖最后由 ywlscpl 于 2009-1-6 08:05 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-01-06 08:31 |只看该作者
如果真是一个11G的文件,用这些方法要多久?

论坛徽章:
0
8 [报告]
发表于 2009-01-06 08:33 |只看该作者

回复 #4 寂寞烈火 的帖子

好像大家都没有排序。。。

论坛徽章:
0
9 [报告]
发表于 2009-01-06 08:38 |只看该作者

回复 #7 haimming 的帖子

这个太难说,突然想到,用grep处理这么大的文件不行,会有问题。。。
呵呵

论坛徽章:
0
10 [报告]
发表于 2009-01-06 08:57 |只看该作者
上面两位大侠的时间大比拼
[test@erpdataserver ~]$ ll urfile
-rw-rw-r--  1 test test 256092645 Jan  6 08:44 urfile
[test@erpdataserver ~]$ time awk '{for (i=1;i<=NF;i++) if (length($i)==3 && $i+0==$i) printf $i" ";printf "\n"}' urfile >newfile.txt
real    1m20.707s
user    1m20.269s
sys     0m0.433s

[test@erpdataserver ~]$ time awk '{for(i=1;i<=NF;i++)if($i~/\<[0-9][0-9][0-9]\>/)printf $i" ";printf "\n"}'  urfile >newfile.txt

real    2m1.069s
user    2m0.641s
sys     0m0.416s
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP