Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/07/2017, à 18:07

trouson

Nettoyer un fichier par script

Bonjour à tous,

je dois nettoyer un fichier que je télécharge d'internet et qui a la structure suivante :

id = 1, Name = toto, group = "XYZ"
http="toto.html"
id = 2, Name = titi, group = "XYZ"
http="titi.html"
id = 3, Name = tutu, group = "AAA"
http="tutu.html"
id = 4, Name = tata, group = "XYZ"
http="tata.html"

Je veux supprimer chaque ligne qui contient group = "XYZ" et la ligne suivante. Du coup, dans l'exemple ci-dessus, il me resterait seulement :

id = 3, Name = tutu, group = "AAA"
http="tutu.html"

une idée en utilisant vi en ligne de commande ou gawk ?

Merci d'avance

Hors ligne

#2 Le 23/07/2017, à 18:27

pingouinux

Re : Nettoyer un fichier par script

Bonjour,

sed  '/group = "XYZ"/{N;d}' fichier

Hors ligne

#3 Le 23/07/2017, à 18:33

Watael

Re : Nettoyer un fichier par script

utiliser vi en ligne ! lol
éventuellement, ed, et alors sed me semble plus pratique.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 23/07/2017, à 19:07

DonutMan75

Re : Nettoyer un fichier par script

Hello,
je serais parti sur une solution via grep... Mais ça ne marche pas sad
Les options -A (after...) et -v (reverse) utilisées conjointement ne donnent de toute évidence pas le résultat que j'escomptais...

$ cat test.txt 
id = 1, Name = toto, group = "XYZ"
http="toto.html"
id = 2, Name = titi, group = "XYZ"
http="titi.html"
id = 3, Name = tutu, group = "AAA"
http="tutu.html"
id = 4, Name = tata, group = "XYZ"
http="tata.html"

$ grep -A 1 -v 'group = "XYZ"' test.txt 
http="toto.html"
id = 2, Name = titi, group = "XYZ"
http="titi.html"
id = 3, Name = tutu, group = "AAA"
http="tutu.html"
id = 4, Name = tata, group = "XYZ"
http="tata.html"

Hors ligne

#5 Le 23/07/2017, à 19:40

trouson

Re : Nettoyer un fichier par script

pingouinux a écrit :

Bonjour,

sed  '/group = "XYZ"/{N;d}' fichier

GENIAL !!! Merci j'ai pu adapter pour traiter d'autres cas. Merci beaucoup à vous tous

Hors ligne