はFile1 - すべての経路の>リスト - >は3つのCOLS、ファイル2を持っています。
perl -wMstrict -Mvars='*h' -lane '
# Step: Gather data & populate the hash
if (@ARGV) {
next if @F < 3;
my($group, $pathway, $value) = @F;
$h{ $group }{ $pathway } = $value;
} else {
push @h, $_;
}
END{
my @data;
# Step: Prepare the tabular data
for my $pathway (@h) {
my @line = ($pathway);
for my $group (sort keys %h) {
push @line, $h{ $group }{ $pathway } ||= q||;
}
push @data, [join ",", @line];
}
# Dynamiclly build the tbl template
print for(
q{.TS},
join(",", qw/ allbox center /, q/tab(,);/),
("c " x (1+keys %h)),
(qw/l/, "n " x (-1+keys %h), qw/n./),
join(",", q{}, sort keys %h),
join("\n", map { @$_ } @data),
q{.TE},
);
}
' file1 file2 \
| tbl - | nroff -Tascii -ms | grep '.'
出力
+---------+--------+--------+
| | group1 | group2 |
+---------+--------+--------+
|pathway1 | 0.664 | |
+---------+--------+--------+
|pathway2 | 0.056 | 0.321 |
+---------+--------+--------+
|pathway3 | | 0.771 |
+---------+--------+--------+
|pathway4 | | |
+---------+--------+--------+
|pathway5 | | |
+---------+--------+--------+
|pathway6 | 1 | |
+---------+--------+--------+
あなたがしようとしている言語に言及してください? –
@MausamSinha私はLinuxの初心者です。それほど複雑ではないソリューションもありがとう! –
あなたは人々にあなたのコードを書くことを望んでいるだけでなく、[同じ質問](http://unix.stackexchange.com/questions/350437/how-to-form-a-matrix-テーブル)を何度も繰り返してコードを取得します。 –