i=0
{ paste res.? res.?? res.???
while paste ./res."$((i+=1))"[0-9][0-9][0-9]
do :; done; } >outfile
Je ne pense pas que ce soit aussi compliqué que cela - vous avez déjà fait le gros travail en commandant les noms de fichiers. Ne les ouvrez pas tous en même temps, c'est tout.
Autrement:
pst()      if   shift "$1"
           then paste "$@"
           fi
set ./res.*
while  [ -n "${1024}" ] ||
     ! paste "$@"
do     pst "$(($#-1023))" "$@"
       shift 1024
done >outfile
... mais je pense que cela les fait reculer ... Cela pourrait mieux fonctionner:
i=0;  echo 'while paste \'
until [ "$((i+=1))" -gt 1023 ] &&
      printf '%s\n' '"${1024}"' \
      do\ shift\ 1024 done
do    echo '"${'"$i"'-/dev/null}" \'
done | sh -s -- ./res.* >outfile
Et voici encore une autre façon:
tar --no-recursion -c ./ |
{ printf \\0; tr -s \\0; }    |
cut -d '' -f-2,13              |
tr '\0\n' '\n\t' >outfile
Cela permet tarde rassembler pour vous tous les fichiers dans un flux délimité par des valeurs nulles, d'analyser toutes ses métadonnées d'en-tête sauf le nom de fichier et de transformer toutes les lignes de tous les fichiers en onglets. Il s'appuie cependant sur l'entrée comme étant des fichiers texte réels - ce qui signifie que chaque extrémité se termine par une nouvelle ligne et qu'il n'y a pas d'octets nuls dans les fichiers. Oh - et cela repose également sur le fait que les noms de fichiers eux-mêmes sont sans nouvelle ligne (bien que cela puisse être géré de manière robuste avec tarl' --xformoption GNU ) . Étant donné que ces conditions sont remplies, il devrait faire très peu de travail sur n'importe quel nombre de fichiers - et tarfera presque tout.
Le résultat est un ensemble de lignes qui ressemblent à:
./fname1
C1\tC2\tC3...
./fname2
C1\tC2\t...
Etc. 
Je l'ai testé en créant d'abord 5 fichiers de test. Je n'avais pas vraiment envie de créer 10000 fichiers à l'instant, alors je suis juste allé un peu plus gros pour chacun - et j'ai également veillé à ce que la longueur des fichiers diffère considérablement. Ceci est important lors du test de tarscripts car taril bloquera l'entrée à des longueurs fixes - si vous n'essayez pas au moins quelques longueurs différentes, vous ne saurez jamais si vous ne gérerez réellement que celle-là.
Quoi qu'il en soit, pour les fichiers de test, j'ai fait:
for f in 1 2 3 4 5; do : >./"$f"
seq "${f}000" | tee -a [12345] >>"$f"
done
ls a ensuite rapporté:
ls -sh [12345]
68K 1 68K 2 56K 3 44K 4 24K 5
... puis j'ai couru ...
tar --no-recursion -c ./ |
{ printf \\0; tr -s \\0; }|
cut -d '' -f-2,13          |
tr '\0\n' '\n\t' | cut -f-25
... juste pour n'afficher que les 25 premiers champs délimités par tabulation par ligne (car chaque fichier est une seule ligne - il y en a beaucoup ) ...
Le résultat était:
./1
1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25
./2
1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25
./3
1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25
./4
1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25
./5
1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25
               
              
--serialoption avec lapastecommande?