免费注册 查看新帖 |

Chinaunix

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

如何加快检索文件名的速度? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-01 21:15 |只看该作者 |倒序浏览
5可用积分
一个目录下有多个要被处理的XLS文件,大概80个左右,每个文件大概4M左右。
[root@Fedora faxnum]# ls *.xls
20090501_2009053101.xls  20090601_2009063042.xls  20090701_2009073106.xls
20090501_2009053102.xls  20090601_2009063043.xls  20090701_2009073107.xls
20090501_2009053103.xls  20090601_2009063051.xls  20090701_2009073108.xls
20090501_2009053104.xls  20090601_2009063052.xls  20090701_2009073109.xls
20090501_2009053105.xls  20090631_2009063001.xls  20090701_2009073110.xls
20090501_2009053106.xls  20090631_2009063004.xls  20090701_2009073111.xls
20090501_2009053107.xls  20090631_2009063005.xls  20090701_2009073112.xls
20090501_2009053108.xls  20090631_2009063006.xls  20090701_2009073113.xls
20090501_2009053109.xls  20090631_2009063007.xls  20090701_2009073114.xls
20090501_2009053110.xls  20090631_2009063008.xls  20090701_2009073115.xls
20090501_2009053111.xls  20090631_2009063009.xls  20090701_2009073116.xls
20090601_2009063001.xls  20090631_2009063010.xls  20090701_2009073131.xls
20090601_2009063002.xls  20090631_2009063011.xls  20090701_2009073132.xls
20090601_2009063003.xls  20090641_2009063003.xls  20090701_2009073133.xls
20090601_2009063004.xls  20090701_2009072401.xls  20090701_2009073134.xls
20090601_2009063005.xls  20090701_2009072402.xls  20090731_2009073101.xls
20090601_2009063006.xls  20090701_2009072403.xls  20090731_2009073102.xls
20090601_2009063007.xls  20090701_2009072404.xls  20090731_2009073103.xls
20090601_2009063008.xls  20090701_2009072405.xls  20090731_2009073104.xls
20090601_2009063009.xls  20090701_2009072406.xls  20090801_2009082828.xls
20090601_2009063010.xls  20090701_2009072407.xls  20090801_2009082831.xls
20090601_2009063011.xls  20090701_2009072408.xls  20090801_2009083101.xls
20090601_2009063012.xls  20090701_2009072409.xls  20090801_2009083102.xls
20090601_2009063013.xls  20090701_2009073101.xls  20090801_2009083103.xls
20090601_2009063031.xls  20090701_2009073102.xls  20090801_2009083104.xls
20090601_2009063032.xls  20090701_2009073103.xls  20090801_2009083105.xls
20090601_2009063033.xls  20090701_2009073104.xls  20090801_2009083131.xls
20090601_2009063034.xls  20090701_2009073105.xls  20090801_2009083132.xls

我写一个shell脚本如下,
[root@Fedora faxnum]# cat num.sh
#!/bin/sh
for ((i = 1; i < 86; i++))
do
awk '{if(($7>"00:00:25" && $7<"00:01:30")) print $4}' 20090[0-9][0-9][0-9]_20090[0-9][0-9][0-9][0-9][0-9].xls >$i.txt
done
unix2dos $i.txt


[root@Fedora faxnum]# ./num.sh

这个命令在本机上处理速度很慢,大概要20-30分钟才可以执行完,
个人觉得主要是在20090[0-9][0-9][0-9]_20090[0-9][0-9][0-9][0-9][0-9].xls 这个正则表达式匹配文件名处理过程慢导致的,
明天上来看看,期待各位兄弟姐妹提供下好的方法和建议,提高下文件处理的速度。谢谢!

[ 本帖最后由 leezer 于 2009-9-1 21:17 编辑 ]

最佳答案

查看完整内容

乱来哦,重做无用功!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-09-01 21:15 |只看该作者
乱来哦,重做无用功!
  1. awk '$7>"00:00:25" && $7<"00:01:30" { print $4 > FILENAME".bak"}' *.xls
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-13 06:20:00
3 [报告]
发表于 2009-09-01 21:20 |只看该作者
处理的慢绝对不是这个正则表达式的原因。for循环是做什么的,可以说明一下吗?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2009-09-01 21:30 |只看该作者
看不懂, 但是用awk即可解决而不用for吧?!

论坛徽章:
0
5 [报告]
发表于 2009-09-01 21:34 |只看该作者
awk  默认一次处理一行,而每个文件4M ,文件还挺多,处理起来当然快不起来

而且,楼主可以 awk 处理 .xls 得到期望的结果??

实在让我震惊...

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
6 [报告]
发表于 2009-09-01 21:45 |只看该作者
直接用

awk '.....'   *.xls

论坛徽章:
0
7 [报告]
发表于 2009-09-01 21:50 |只看该作者
楼主的程序能正常运行?

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
8 [报告]
发表于 2009-09-02 11:38 |只看该作者
震惊,awk能直接处理xls类型文件?

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
9 [报告]
发表于 2009-09-02 11:44 |只看该作者
$7在哪里???

论坛徽章:
0
10 [报告]
发表于 2009-09-02 11:44 |只看该作者
*.xls啊...为啥要这么匹配- -
而且 这处理速度和正则无关的...但是..awk可以这么处理xls啊...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP