linux – 使用AWK从两个文件中构造n个列
发布时间:2020-12-14 01:49:17 所属栏目:Linux 来源:网络整理
导读:我有两个N列数的文件 文件1: A 1 2 3 ....... Na1B 2 3 4 ....... Nb1 文件2: A 2 2 4 ....... Na2B 1 3 4 ....... Nb2 我想要一个输出,其中File1的第一列值将从File2的第一列中减去,这样直到N列,如下所示: A -1 0 -1 ........ (Na1-Na2)B 1 0 0 ........
我有两个N列数的文件
文件1: A 1 2 3 ....... Na1 B 2 3 4 ....... Nb1 文件2: A 2 2 4 ....... Na2 B 1 3 4 ....... Nb2 我想要一个输出,其中File1的第一列值将从File2的第一列中减去,这样直到N列,如下所示: A -1 0 -1 ........ (Na1-Na2) B 1 0 0 ........ (Nb1-Nb2) 如何做到这一点是在Linux环境下的AWK或Perl脚本? 解决方法
像这样的东西:
use strict; use warnings; my (@fh,@v); for (@ARGV) { open (my $handle,"<",$_) or die ("$!: $_"); push @fh,$handle; } while (@v = map { [split ' ',<$_> ] } @fh and defined shift @{$v[0]}) { print join(" ",(shift @{$v[1]},map { $_ - shift(@{$v[1]}) } @{$v[0]})),"n"; } close $_ for (@fh); 跑步: perl script.pl input1 input2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |