não testado devido à falta de dados de entrada:
gawk '
BEGIN {FS = OFS = "\t"}
BEGINFILE {match(FILENAME, /inputfile_([0-9]+).assoc.logistic/, m)}
FNR == 1 {
key = $1 OFS $2 OFS $3
data[key] = data[key] OFS $7"_"m[1] OFS $8"_"m[1] OFS $9"_"m[1]
next
}
{
key = $1 OFS $2 OFS $3
data[key] = data[key] OFS $7 OFS $8 OFS $9
}
END {
for (key in data) {
print key data[key]
}
}
' inputfile_*.assoc.logistic > outputfile
Como estou interagindo com chaves hash para enviar os dados, a saída aparecerá em ordem aleatória