- 论坛徽章:
- 0
|
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,之前也没接触过正则,纯新手,希望可以得到一些指导,先谢谢各位了! |
|