perl -F'\s+' -lane '
$. == 1 and @ARGC = ($ARGV, @ARGV); # initialize the @ARGC array
exists $h{$F[0]} or $h[keys %h] = $F[0]; # needed to remember order
$h{$F[0]}->[@ARGC-@ARGV-1] = $F[1]; # populate hash
END {
$, = "\t"; # set the OFS to TAB
print q//, @ARGC; # print the first line with filenames
for my $key (@h) { # print remaninig lines with data
print $key,
map { $h{$key}->[$_] // 0 } 0 .. $#ARGC;
}
}
' file1 file2 file3 # ... you can give as many files here
Выходные данные
file1 file2 file3
foo 12 23 35
jhdfeg 25 45 0
kjfdgkl 37 0 0
djhf 0 0 37
Rui F Ribeiro
17.11.2018, 22:09
Ссылка