Posez votre question Signaler

[Shel Script] Awk formatage fichier texte [Résolu]

Dipsou - Dernière réponse le 7 déc. 2011 à 11:02
Bonjour,
Je suis en train de créer un script qui normalement devrait formater un fichier qui a la tête suivante :
CHAMP1:CHAMP2:123:4:567
L'objectif est d'arriver à un format fixe sans séparateur :
CHAMP1 CHAMP2 00001230040567
Mon script est le suivant :
awk 'BEGIN { FS=":" ;
OFS=":" ;
printf "%10s %10s %07d %03d %04d\n",$1,$2,$3,$4,$5
}
' OLD_FIC > NEW_FIC
Et j'obtiens dans mon NEW_FIC une ligne avec :
000000000000000000000
???
Je ne comprends pas ou ça peche...
Pourriez vous m'aider ?
Merci beaucoup
Lire la suite 

[Shel Script] Awk formatage fichier texte »

13 réponses
Réponse
+1
moins plus
salut,

tu as oublié de refermer le bloc BEGIN.
awk -F: '{ printf("%10s %10s %07d%03d%04d\n",$1,$2,$3,$4,$5) }'
qui n'est pas utile ici.
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

awk 'BEGIN { FS=":"}{ printf "%10s %10s %07d%03d%04d\n",$1,$2,$3,$4,$5 }'
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup, vous êtes énormes !
Ca m'aide énormément, et la rapidité des réponses aussi !!!
Ajouter un commentaire
Réponse
+0
moins plus
Encore une petite question,
si je souhaite ajouter une chaine dans mon fichier ?
Par exemple :
MA_VAR="BONJOUR"
awk 'BEGIN { FS=":"}{ printf "%20s %10s %10s %07d%03d%04d\n",${MA_VAR},$1,$2,$3,$4,$5 }'

Pour obtenir
BONJOUR CHAMP1 CHAMP2....

Ca plante (awk: 0602-562 Field $() is not correct.)

Merci d'avance
Dipsou - 7 déc. 2011 à 10:57
Merci beaucoup, mea culpa !!!
Un petit dernier, après j'arrête :
CHAMP1 est un nombre qui doit être considéré comme une chaine et donc être aligné à gauche. Or, il s'aligne à droite :
Au lieu de
123_____4567
J'obtiens
_____1234567

Y a t'il un moyen d'aligner champ1 à gauche ?

Merci d'avance
Dipsou - 7 déc. 2011 à 11:01
C'est bon, trouvé, c'était le -
Merci beaucoup pour votre aide.

Bonne journée
zipe31- 7 déc. 2011 à 11:02
%-10s ?
Ajouter un commentaire
Ce document intitulé « [Shel Script] Awk formatage fichier texte » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?