(Courriels de diversion: <cordelieres@dissociables-tiede.com> <bricole@recusables-detenions.com> <croissent@coordonnatrice-completerais.com> <paraîtrions@refondues-chavirais.com> <assentiments@decryptages-stipulees.com> <illicite@jalonneraient-mercuriales.com> <flippers@deroute-relayer.com> <degazant@repus-calibrent.com> <grossissent@irrite-urgences.com> <grâce@favoriserait-debarquerent.com> )
"Jean-François THAMIE" wrote:
>
> Salut à tous,
> j'ai un fichier contenant des enregistrements de longueur 4000
> je voudrais générer un autre fichier où chaque ligne de 4000 serait remplacée
> par le découpage de cette ligne en enregs de 250, soit 16 enregs de longueur 250
> J'ai une soluce avec des boucles mais question perf, c'est pas ca
> Je pensait a d'autres commandes comme pr mais je ne vois pas
> Si au passage quelqu'un a une idée
> Merci
>
Je me suis fabriqué -pour le meme probleme- un petit programme :
coupfile qui devrait faire ce que tu veux :
/* ======= coupfile.c : decoupe un fichier de caractères ======== */
/* */
/* découpe un flot de données (sans fin d'enregistrement) */
/* en enregistrements de longueur fixe (suivant paramètre fourni) */
/* */
/* entrée et sortie standard */
/* on ajoute un separateur=0a en fin d'enregistrement */
/* si un séparateur est en place, on n'ajoute rien */
/* si un séparateur n'est pas en place il est effacé */
/* si lg demandée n'est pas un multiple de la lg du fichier, */
/* le dernier enreg est incomplet */
/* EXEMPLES : */
/* 1- decoupage du fichier ficinp suivant la lg xxx dans ficout */
/* coupfile6 -l xxx <ficinp >ficout */
/* 2- idem + remplacement de car 0 par car "-" */
/* coupfile6 -l 10 <finp | sed -e 's/0/-/g' >fout.2 */
/* */
/* 3- saisie clavier de car : obtenir des enreg de lg fixe */
/* ATTENTION: fin saisie = CTRL-D */
/* coupfile6 -l 10 >fout */
/* */
/* obtenir les lignes entrées au clavier numérotées */
/* coupfile6 -l 10 | awk '{print ("ligne " NR " = " $0)}' >fout.2 */
/* */
/* ============================================================== */
donc, pour toi :
coupfile6 -l 250 <ficinp >ficout
Si ça marche, merci de me le dire ; si ça ne marche pas, merci de me le
dire (gentiment:-)
--
Cordialement,
J-F Bardou
--------------------------------------------------------------------- Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://www.CULTe.org/>