#1 Le 23/07/2017, à 17: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, à 17:27
- pingouinux
Re : Nettoyer un fichier par script
Bonjour,
sed '/group = "XYZ"/{N;d}' fichier
Hors ligne
#3 Le 23/07/2017, à 17: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, à 18:07
- DonutMan75
Re : Nettoyer un fichier par script
Hello,
je serais parti sur une solution via grep... Mais ça ne marche pas
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, à 18:40
- trouson
Re : Nettoyer un fichier par script
Bonjour,
sed '/group = "XYZ"/{N;d}' fichier
GENIAL !!! Merci j'ai pu adapter pour traiter d'autres cas. Merci beaucoup à vous tous
Hors ligne