Chinaunix
标题:
求助两段小script用于遍历文件抓取信息
[打印本页]
作者:
logiccat
时间:
2014-05-08 22:15
标题:
求助两段小script用于遍历文件抓取信息
1. 现有目录结构如下 $workdir/nodenameX/leafY.log, 其中nodename为字符串(例如 node, mynode,myserver等,不定),X,Y为数字,长度不固定,workdir下有多个nodenameX子目录,每个子目录下有多个leaf*.log文件。现在要从所有的leaf*.log中抓取一些信息, 然后对抓取结果做判断进行进一步处理。目前是这样做的:
@result = qx(grep "testInfo" -r $workdir);
foreach(@result){
if($_=~ /\((\d+)\)(.*)\((\d+)\)/){
Output($_);
}
}
复制代码
在实际运行中当文件比较多(几百)的时候感觉是要假死很长时间才会给出结果,想求一个更好的方式。
2.与1.情况不同,leaf*.log分散在多个实际的node节点机器上,同样还是想从每个leaf上抓取一些信息,目前的做法是将所有的leaf*.log scp到host主机上再做处理,文件一多速度还是惨不忍睹,有没有更好的方法?
初学perl,之前也没接触过正则,纯新手,希望可以得到一些指导,先谢谢各位了!
作者:
remark
时间:
2014-05-09 12:04
1 用OPENDIR READDIR会不会好一些 或者把这个testInfo换成glob看是不是快一点
2 当然是把程序分布到各个节点机上过滤以后再传输效率最高
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2