Citation:
Envoyé par
jack-ft
Pourquoi utiliser l'option -d ?
Sans l'option -d, les fichiers sont sûrement dans l'ordre alphabétique...
sinon le résultat est inexploitable!
Citation:
Envoyé par
ecatomb
Pourquoi le résultat serait inexploitable avec l'option -d ?
Oops! Je n'ai pas été assez clair (Ah! Le français! (ça manque vraiment de parenthèses!))
Je voulais dire que, dans l'utilisation standard (sans l'option -d), les suffixes sont xaa xab etc. et que les fichiers générés sont, à coup sûr, dans l'ordre alphabétique car sinon le résultat serait inexploitable!
Pour l'option -d, je ne sais pas dire car je ne la connaissais pas et j'imaginais qu'ils étaient peut-être dans l'ordre numérique et non alphabétique.
Je proposais de ne pas utiliser l'option -d parce que je ne la connais pas et que xaa and co ça fait 676 noms de fichiers (26*26).
Citation:
Le nombre ajouté est 00 puis 01 etc...
Par contre je viens de voir que si le fichier est divisé en plus de 99 parties, la commande split plante. Donc il faudrait connaitre le nombre max de partie avant de faire le split...
Maintenant tu dis que la commande plante si > 99.
C'est logique! Et ça répond à mon interrogation!
Si split continuait au-delà en mettant les nombres sur 3 chiffres, l'ordre alphabétique ne serait plus respecté!
Citation:
Le filtre ${fichier}-split-* pourrait retourner des fichiers non prévus à l'origine si quelqu'un en crée un avec ce préfixe... D'où ma question.
ça va pas être facile de se prémunir contre ça. On peut (presque) toujours créer un fichier qui tombe mal!
Le plus propre serait peut-être de créer un répertoire temporaire avec mktemp -d par exemple.
Citation:
Pour ta dernière remarque, c'est tout à fait ça. S'il y a une lettre au lieu d'un chiffre ce n'est pas pris en compte. C'est ce que j'ai prévu. Mais comme le nombre de lettre ou chiffre doivent être indiqué dans la commande split, je pourrais m'en sortir avec une expression générique.
Finalement, tu peux aussi utiliser split -d -a 10 (à tester) et tu devrais être tranquille!
Du coup, le filtre peut être précisé en ${fichier}-split-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] !
Citation:
Par contre j'ai toujours un doute sur l'ordre. Lors de mes tests cela semble bon, mais j'aimerais avoir confirmation.
Ca serait con d'avoir un fichier en utf8 avec les parties en désordre.
Voici la confirmation:
Code:
info coreutils 'split invocation'
Citation:
The output files' names consist of PREFIX (`x' by default) followed
by a group of characters (`aa', `ab', ... by default), such that
concatenating the output files in traditional sorted order by file name
produces the original input file (except `-r'). If the output file
names are exhausted, `split' reports an error without deleting the
output files that it did create.
Voilà...