我写了一个 Perl 脚本,它从文件中读取并进行计算。基本上我正在尝试计算网络流量的吞吐量。我正在读取的文件具有以下格式:
- 0.152416 1 2 tcp 1040 ------- 2 12.0 2.9 2 13
r 0.153584 1 2 tcp 1040 ------- 2 12.0 2.9 1 12
+ 0.154208 1 2 tcp 1040 ------- 2 10.0 2.7 3 15
- 0.154208 1 2 tcp 1040 ------- 2 11.0 2.8 3 15
r 0.155248 1 2 tcp 1040 ------- 2 12.0 2.9 2 13
我正在提取列 [0]、[3]、[7]、[8]、[9]。由于列 [8] 和 [9] 是双列(iexy),我试图只获取列 [8] 和 [9] 的第一部分(即 x 部分)。换句话说,我不关心点“。”之后的第二部分。. 我只需要第一部分。我想,我有两种方法,是否处理正则表达式或添加更多额外代码来自定义 [8] 和 [9] 中我将阅读的每一行的标记?。任何简短的建议。脚本的一部分:
#input parameters:
$infile=$ARGV[0];
$dest=$ARGV[1];
$from=$ARGV[2];
$to=$ARGV[3];
$fId=$ARGV[4];
$TimeShift=$ARGV[5];
我想让 $from 和 $to 只包含第一部分。
open (DATA,"<$infile") || die "error in $infile $!";
while (<DATA>)
{
@x = split(' '); Im using space