繁体   English   中英

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

[英]how do you select column from a text file using perl

我想从另一列中减去一列中的值并添加差异。如何在perl中做到这一点? 我是perl的新手,因此我不知道该怎么做。 请帮助我。

第一件事是将数据分成几列。 在这种情况下,列之间用空格隔开。 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)

仅供参考,如果您结合使用自动拆分( -a ),循环( n )和命令行程序( -e )参数(请参阅perlrun ),则可以将其缩短为单行格式 ,就像awk一样:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM