Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/02/2013, à 21:28

aduxas

Séparer les champs [Résolu]

J'ai un fichier en format fixe de nombres de sept ou huit chiffres.  J'aimerais séparer les champs avec des virgules (liste CSV), indépendemment de la présence des blancs.  Un petit extrait:

 1253431 1253431 1250835 1250835 4013390 4013390 4014964 4014925 1253801 1253498 1253497 1253497 40085003200605732005797
320057973200579332005793 4007518 4009458 400977132006097 4605673 4008500 4013868 4008438 4010062 4010555 4010821 4008745
 4008745 4010820 1213041 1213041 1377184 1377184 1231775 1231775 1231776 1231776 1231770 1231770 1231764 1231764 1231763
 1231763 1231762 1231762 1253489 1253795 4009937 4009458320059453200594532007071 4007518 4009086 4009086 4008335 4008438

Quel est le moyen le plus compact?  Pas besoin de supprimer les doublons.  Merci!

EDIT: awk FIELDWIDTHS éventuellement?

Dernière modification par aduxas (Le 12/02/2013, à 21:51)

Hors ligne

#2 Le 12/02/2013, à 21:36

grigouille

Re : Séparer les champs [Résolu]

Un petit programme en C ?


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#3 Le 12/02/2013, à 21:38

aduxas

Re : Séparer les champs [Résolu]

Ceci?

awk 'BEGIN{FIELDWIDTHS="8 8 8 8 8 8 8 8 8 8 8 8 8 8 8"} {for (i=1;i<=NF;i++) printf "%8d%1s",$i,",";printf "\n"}' fichier

Hors ligne

#4 Le 12/02/2013, à 21:41

pingouinux

Re : Séparer les champs [Résolu]

Bonsoir,
Quel résultat veux-tu obtenir avec ton exemple ?

Hors ligne

#5 Le 12/02/2013, à 21:45

aduxas

Re : Séparer les champs [Résolu]

Juste un format CSV pour inclure dans un script python.  Je pense que ma méthode fait l'affaire; Finalement c'était plus facile que prévu.  Et j'ai appris FIELDWIDTHS.  Ca donne ceci:

 1253431, 1253431, 1250835, 1250835, 4013390, 4013390, 4014964, 4014925, 1253801, 1253498, 1253497, 1253497, 4008500,32006057,32005797,
32005797,32005793,32005793, 4007518, 4009458, 4009771,32006097, 4605673, 4008500, 4013868, 4008438, 4010062, 4010555, 4010821, 4008745,
 4008745, 4010820, 1213041, 1213041, 1377184, 1377184, 1231775, 1231775, 1231776, 1231776, 1231770, 1231770, 1231764, 1231764, 1231763,
 1231763, 1231762, 1231762, 1253489, 1253795, 4009937, 4009458,32005945,32005945,32007071, 4007518, 4009086, 4009086, 4008335, 4008438,

Dernière modification par aduxas (Le 12/02/2013, à 21:49)

Hors ligne

#6 Le 12/02/2013, à 22:02

pingouinux

Re : Séparer les champs [Résolu]

Tu as aussi ceci :

sed -r 's/.{8}/&,/g' fichier

Hors ligne

#7 Le 12/02/2013, à 23:07

aduxas

Re : Séparer les champs [Résolu]

Ah oui.  Merci!

Hors ligne