Manipulation d'un fichier avec un script [Résolu]

Messages postés
3
Date d'inscription
mercredi 9 janvier 2019
Statut
Membre
Dernière intervention
10 janvier 2019
- - Dernière réponse : Julie_ette
Messages postés
3
Date d'inscription
mercredi 9 janvier 2019
Statut
Membre
Dernière intervention
10 janvier 2019
- 10 janv. 2019 à 14:17
Bonjour,

Tout d'abord mes meilleurs voeux pour cette nouvelle année !!

J'ai problème avec un fichier qui a été généré avec des erreurs et que je ne peux pas régénérer.
Le nombre de ligne impacté étant assez important on m'a conseillé de le faire via un script.
Problème c'est que je n'y connais pas grand chose, pire qu'une débutante...donc si une âme charitable veut bien m'aider...

mon fichier se structure de cette façon :

AAA1;BBBB1;CCCCC1;DDDD;EEEE1;666
AAA2;BBBB2;CCCCC2;DDDD;EEEE2;111
AAA3;BBBB3;CCCCC3;DDDD;EEEE3;666
AAA4;BBBB4;CCCCC4;DDDD;EEEE4;111
AAA5;BBBB5;CCCCC5;DDDD;EEEE5;666

Je souhaiterai faire deux choses :
1- Pouvoir effacer le champ DDDD pour tous ceux dont la ligne se termine par "111"
2- Remplacer le "111" par des "666"

Afin d'obtenir le résultat suivant :

AAA1;BBBB1;CCCCC1;DDDD;EEEE1;666
AAA2;BBBB2;CCCCC2;;EEEE2;666
AAA3;BBBB3;CCCCC3;DDDD;EEEE3;666
AAA4;BBBB4;CCCCC4;;EEEE4;666
AAA5;BBBB5;CCCCC5;DDDD;EEEE5;666

Merci à tous ceux qui voudront bien m'aider.

Juju
Afficher la suite 

2 réponses

Messages postés
213
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
13
0
Merci
salut,

Demander de l'aide pour vos exercices

les manipulations sur ce type de structure de fichier (CSV) se font de manière privilégiée avec
awk
.
on peut bien sûr le faire en shell, mais l'exécution est moins rapide.
Julie_ette
Messages postés
3
Date d'inscription
mercredi 9 janvier 2019
Statut
Membre
Dernière intervention
10 janvier 2019
-
Merci pour votre réponse.

Je suis très flattée que vous me preniez encore pour une jeune étudiante :-)
Et j'espère ne pas avoir enfreint les règles régies par ce forum d'entre-aide.

Cependant il ne s'agit pas d'un exercice d'étudiant mais d'une aide pour résoudre un problème le plus rapidement à mon travail. En effet, c'est moi qui est fait une erreur ce qui a généré le fichier comme dans l'exemple et j'aimerai pouvoir résoudre le problème pour éviter de me faire taper sur les doigts... les modifications étant très longue si je devais le faire manuellement, c'est pour cela que je fais appel à votre aide.

J'ai essayé de regarder par moi-même mais la syntaxe est complexe ou la moindre cote ou virgule mal placée fait que ça ne marche pas...
J'ai vu en effet les fonctions awk ou même sed mais la syntaxe et les options à utiliser sont compliquées à comprendre en si peu de temps...

Juju
Commenter la réponse de lEprofSonDkon
Messages postés
17856
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
16 octobre 2019
4474
0
Merci
hello
$ awk 'BEGIN {FS=OFS=";"} /111$/ {$4=""; $NF="666"} {print}' fichier
AAA1;BBBB1;CCCCC1;DDDD;EEEE1;666
AAA2;BBBB2;CCCCC2;;EEEE2;666
AAA3;BBBB3;CCCCC3;DDDD;EEEE3;666
AAA4;BBBB4;CCCCC4;;EEEE4;666
AAA5;BBBB5;CCCCC5;DDDD;EEEE5;666
Julie_ette
Messages postés
3
Date d'inscription
mercredi 9 janvier 2019
Statut
Membre
Dernière intervention
10 janvier 2019
-
Bonjour dubcek,

Super !!! ça fonctionne parfaitement, tu m'enlèves une sacré épine du pied !!!

Merci à tous ;-)

Juju
Commenter la réponse de dubcek