回复 1# 20032007
$ grep . FILE[abc]
FILEa:aaa,bbb,ccc
FILEa:1,2,3
FILEb:aaa,bbb,ccc,ddd
FILEb:1,2,3,4
FILEb:2,2,2,2
FILEc:bbb,eee
FILEc:2,33
FILEc:1,2
$ awk -F, 'BEGIN{for(n=1;n<ARGC;n++){cmd="head -1 "ARGV[n];cmd|getline t;close(cmd);tt=split(t,a);for(tn=1;tn<=tt;tn++)if(!d[a[tn]]){d[a[tn]]=++c;f[c]=a[tn]}};p="file";for(n=1;n<=c;n++)p=p","f[n];print p}FNR==1{delete s;for(n=1;n<=NF;n++)s[d[$n]]=n;next}{p=FILENAME;for(n=1;n<=c;n++){N=s[d[f[n]]];p=p","(N?$N:"")}print p}' FILE[abc]
file,aaa,bbb,ccc,ddd,eee
FILEa,1,2,3,,
FILEb,1,2,3,4,
FILEb,2,2,2,2,
FILEc,,2,,,33
FILEc,,1,,,2
|