(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/>