Isso parece fazer o truque:
$ printf "\t"; find input? | xargs printf "%s\t"; echo ""; paste input? | awk 'BEGIN { OFS="\t" } {printf "%s%s", $1,OFS; for( i=2;i<=NF;i++) { if( $1 != $i ) { printf "%s%s", $i, OFS } } printf "\n" }'
input1 input2 input3
p1_61_length_503_cov_4.457447 24 24 24
p1_62_length_500_cov_4.037534 35 35 35
p1_63_length_500_cov_1.718499 6 6 6
p5_1_length_5181_cov_48.147804 0 0 0
p5_2_length_4872_cov_28.387777 0 0 0
p5_4_length_4057_cov_39.930534 0 0 0
As colunas aqui são separadas por tabulações para facilitar o processamento; fazer as colunas se alinharem verticalmente é relativamente trivial daqui.
O script awk
real:
BEGIN {
OFS="\t"
}
{
printf "%s%s", $1,OFS;
for( i=2;i<=NF;i++) {
if( $1 != $i ) {
printf "%s%s", $i, OFS
}
}
printf "\n"
}