#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