【发布时间】:2014-05-12 22:19:34
【问题描述】:
我有多个看起来像 dmesg 输出的日志文件。我需要将所有这些文件的某些结果解析并存储到一个输出文件中。 前输入文件1:
.....
Started 1399343129
KbPerSec 1222
KiloBytes 9302938
Status 83
StorageUNit unitname
Ended 1399473434
.......
输出文件:
1399343129 1222 9302938 83 unitname 1399473434
<input file2 numbers>
<input file3 numbers>
.....
所以,我使用 grep,并拆分 grep 结果以获得我想要的数字。这是我的代码的样子。
<TRY> 是我的文件句柄。
my (@grepres, @splitres);
my ($size, $start, $bw);
if(@grepres=grep{/KbPerSec/} <TRY>){
@splitres=split(' ',$grepres[0]);
$bw=$splitres[1];
print "1. $bw\n";
}
if(@grepres=grep{/Started/} <TRY>){
@splitres=split(' ',$grepres[0]);
$start=$splitres[1];
print "$start\n";
}
...
- 但我的代码只执行第一个 if,然后停止。为什么它不执行其他 if 语句?
- 这似乎不是一种有效的方法。我怎样才能做得更好?
【问题讨论】:
标签: perl