Comment réduire avec awk, la largeur d'un champ contenu dans un enregistrement
Résolu
zigroful
Messages postés
20
Statut
Membre
-
zigroful Messages postés 20 Statut Membre -
zigroful Messages postés 20 Statut Membre -
Je suis sous Ubuntu 18.04 LTS et essaie d'apprendre à me servir de awk.
J'ai un fichier csv de ce type:
et ainsi de suite sur 300 enregistrements.
(je renvoie le tableau ci-dessus car les espaces sont écrasés lorsque j'envoie le message. Je les ai donc remplacés par des tirets, mais en réalité, il s'agit d'espaces blancs !)
J'appelle champs ce qui est entouré de points-virgules (ici 5 champs et deux enregistrements)
Les a_i et b_i étant des chaines de caractères alphanumériques de longueurs variables.
Comment faire pour que chaque champ soit bien bordé, càd de sorte que la chaine alphanumérique soit systématiquement entourée d'un seul espace après et avant chaque point-virgule, càd:
a1 ; a2 ; a3 ; a4 ; a5
b1; b2 ; b3 ; b4 ; b5
etc...
J'ai cherché dans toute la documentation et n'ai pas trouvé de moyen de le faire. Quelqu'un pourrait-il m'aider ?
J'ai un fichier csv de ce type:
a1_____ ; ______ a2;a3 _______________________ ; _____________ a4 ; a5
b1_________ ; ___________________________ b2;___ b3; _____________________ b4 ;__ b5
et ainsi de suite sur 300 enregistrements.
(je renvoie le tableau ci-dessus car les espaces sont écrasés lorsque j'envoie le message. Je les ai donc remplacés par des tirets, mais en réalité, il s'agit d'espaces blancs !)
J'appelle champs ce qui est entouré de points-virgules (ici 5 champs et deux enregistrements)
Les a_i et b_i étant des chaines de caractères alphanumériques de longueurs variables.
Comment faire pour que chaque champ soit bien bordé, càd de sorte que la chaine alphanumérique soit systématiquement entourée d'un seul espace après et avant chaque point-virgule, càd:
a1 ; a2 ; a3 ; a4 ; a5
b1; b2 ; b3 ; b4 ; b5
etc...
J'ai cherché dans toute la documentation et n'ai pas trouvé de moyen de le faire. Quelqu'un pourrait-il m'aider ?
A voir également:
- Comment réduire avec awk, la largeur d'un champ contenu dans un enregistrement
- Comment réduire la taille d'un fichier - Guide
- Comment reduire la taille d'une photo - Guide
- Reduire clavier iphone - Guide
- Comment couper un enregistrement audio - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
2 réponses
Salut,
awk est une obligation ?
Parce qu'avec sed c'est très simple :
awk est une obligation ?
Parce qu'avec sed c'est très simple :
$ cat f1 a1 ; a2 ; a3 ; a4 ; a5 b1 ; b2 ; b3 ; b4 ; b5
$ sed 's/ */ /g' f1 a1 ; a2 ; a3 ; a4 ; a5 b1 ; b2 ; b3 ; b4 ; b5
zipe31
Messages postés
38797
Statut
Contributeur
6 433
Avec awk :