Bonjour,
J’ai un fichier contenant les lignes suivantes:
850613|452357||850613|2015-12-23 14:21:22.808821|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B5
850614|452358||850614|2015-12-23 14:21:22.980394|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B6
850615|452359||850615|2015-12-23 14:21:23.209291|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B7
850616|452360||850616|2015-12-23 14:21:23.619025|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B8
Je souhaite supprimer uniquement le chemin à la fin qui se trouve sous la forme "00/0C/FA/B8"
J’ai essayé avec sed, grep -v et awk sans succès! Très probablement du aux différents caractères tel que le | ou le /.
Sauriez vous comment faire?
Merci
Bonjour
michel@debg53sw:~$ cat monFichier
850613|452357||850613|2015-12-23 14:21:22.808821|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B5
850614|452358||850614|2015-12-23 14:21:22.980394|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B6
850615|452359||850615|2015-12-23 14:21:23.209291|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B7
850616|452360||850616|2015-12-23 14:21:23.619025|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|00/0C/FA/B8
michel@debg53sw:~$
michel@debg53sw:~$ sed 's/\([[:xdigit:]]\{2\}\/\)\{3\}[[:xdigit:]]\{2\}$//' monFichier
850613|452357||850613|2015-12-23 14:21:22.808821|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
850614|452358||850614|2015-12-23 14:21:22.980394|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
850615|452359||850615|2015-12-23 14:21:23.209291|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
850616|452360||850616|2015-12-23 14:21:23.619025|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
michel@debg53sw:~$
michel@debg53sw:~$ awk -F'|' '{OFS="|";$NF="";print}' monFichier
850613|452357||850613|2015-12-23 14:21:22.808821|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
850614|452358||850614|2015-12-23 14:21:22.980394|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
850615|452359||850615|2015-12-23 14:21:23.209291|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
850616|452360||850616|2015-12-23 14:21:23.619025|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32|
michel@debg53sw:~$
Il y a aussi la commande cut mais le dernier caractère “|” est perdu.
michel@debg53sw:~$ cut -d '|' -f1-9 monFichier
850613|452357||850613|2015-12-23 14:21:22.808821|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32
850614|452358||850614|2015-12-23 14:21:22.980394|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32
850615|452359||850615|2015-12-23 14:21:23.209291|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32
850616|452360||850616|2015-12-23 14:21:23.619025|xxx@yyy.net|Client|relivraison cmde 13246800 IMPORTANT|201.32
michel@debg53sw:~$
Merci! J’essaie ça dés demain et je te fais un retour.
Ca marche, mais en fait c’est moi qui me suis planté dans ma demande.
En réalité, il me faut supprimer la ligne entière si le chemin est contenu dans un fichier.
J’ai un fichier WRONG.txt qui ne contient QUE les chemin à supprimer dans mon fichier monFichier.
Pour chaque chemin présent dans WRONG.txt, la ligne contenant ce chemin dans monFichier devra etre supprimée.
salut,
donne un exemple avant/après pour ne pas faire perdre leur temps à ceux qui t’aident
Pas la peine, je viens de trouver…
grep -f WRONG.txt -v FILE.txt