( zeller | 2023. 02. 14., k – 11:26 )

Nem kell előre semmit sem rendezgetni - miután megértettem, mit kell kiírni a végén, már adódott a megoldás:

 

BEGIN { cmax=0; }
      { if ( cmax<NF ) { 
          cmax=NF; 
        };  
        for ( i=1; i<=NF; i++ ) {
          ertekek[$i]++;
          ertcol[$i"."i]++;
        }
      }
END   { for ( v in ertekek ) {
          for ( col=1; col<cmax+1; col++ ) {
            if ( ertcol[v"."col]==0 ) {
              p="-";
            } else {
              p=v;
            };
            printf "%s\t", p;
          };
          printf "\n" 
        }
      }