[Shel Script] Awk formatage fichier texte
Résolu
Dipsou
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
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
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
A voir également:
- [Shel Script] Awk formatage fichier texte
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
salut,
tu as oublié de refermer le bloc BEGIN.
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.
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
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