如何使用perl从文本文件中选择列

时间:2013-10-26 23:15:12

标签: perl add

我想从另一列中减去一列中的值并添加差异。如何在perl中执行此操作?我是perl.Hence的新手。我无法弄清楚如何去做。请帮助我。

2 个答案:

答案 0 :(得分:3)

首先是将数据分成列。在这种情况下,列由空格分隔。 split(/ /)将返回列的列表。

要从另一个中减去一个,它会将值从列表中拉出并减去它们。

最后,您将差异添加到运行总和,然后循环数据。

#!/usr/bin/perl

use strict;

my $sum = 0;

while(<DATA>) {
    my @vals = split(/ /);
    my $diff = $vals[1] - $vals[0];
    $sum += $diff;
}

print $sum,"\n";

__DATA__
1 3
3 5
5 7

这将打印出6 ---(3 - 1)+(5 - 3)+(7 - 5)

答案 1 :(得分:2)

仅供参考,如果你结合了autosplit(-a),循环(n)和命令行程序(-e)参数(参见perlrun),你可以将其缩短为单行,非常类似于awk

perl -ane "$sum += $F[1] - $F[0]; END { print $sum }" filename