Is it possible to join all the files with input1 based on 1st column?
input1
a
b
c
d
e
f
input2
a
b
input3
a
e
input4
c
d
e
f
inputx
a
awk -f join.awk input1 input2 input3 input4 inputx .....
output
a 4 input1 input2 input3 inputx
b 2 input1 input2 0 0 0
c 2 input1 0 0 input4 0
d 2 input1 0 0 input4 0
e 3 input1 0 input3 input4 0
f 2 input1 0 0 input4 0
note: 2nd column represents how many times the symbol appeared in x nummber of inputs
$ cat join.awk
{
totalcnt[$1]++
if(FILENAME != prevfilename)
filesc++
filecnt[filesc,$1]++
fname[filesc]=prevfilename=FILENAME
}
END {
for(i in totalcnt)
{
printf("%s\t%s",i,totalcnt)
for(j=1;j<=filesc;j++)
{
printf("\t%s[%d]",fname[j],filecnt[j,i])
}
printf("%s","\n");
}
}
Slight mod to elixir_sinari's post to match OP request for filenames not count:
$ cat join.awk
{
totalcnt[$1]++
filesc+=(FNR==1)
filecnt[filesc,$1]=FILENAME
}
END {
OFS="\t"
for(i in totalcnt) {
$0=""; $1=i; $2=totalcnt
for(j=1;j<=filesc;j++)
$(j+2)=filecnt[j,i]?filecnt[j,i]:"0"
print
}
}