Grep avec rm
Résolu/Fermé
enyrix
Messages postés
144
Date d'inscription
vendredi 11 novembre 2011
Statut
Membre
Dernière intervention
7 avril 2021
-
Modifié par enyrix le 26/02/2015 à 15:15
mamiemando Messages postés 33520 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 5 février 2025 - 28 févr. 2015 à 16:14
mamiemando Messages postés 33520 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 5 février 2025 - 28 févr. 2015 à 16:14
1 réponse
mamiemando
Messages postés
33520
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
5 février 2025
7 823
Modifié par mamiemando le 28/02/2015 à 16:14
Modifié par mamiemando le 28/02/2015 à 16:14
Voici comment tu peux faire :
Si tu n'avais pas eu besoin du mode interactif, tu aurais pu écrire :
Le problème c'est qu'avec cette deuxième version, si tu remplaces "-f" par "-i" tu ne pourras pas répondre aux questions de confirmation (car le pipe "parallèlise" les différents appels fait à rm, contrairement à la boucle for qui les déclenche un par un).
Bonne chance
for x in $(grep -r "salut" /home/toto | cut -d":" -f1); do rm -i "$x"; done
Si tu n'avais pas eu besoin du mode interactif, tu aurais pu écrire :
grep -r "salut" /home/toto | cut -d":" -f1 | xargs rm -f
Le problème c'est qu'avec cette deuxième version, si tu remplaces "-f" par "-i" tu ne pourras pas répondre aux questions de confirmation (car le pipe "parallèlise" les différents appels fait à rm, contrairement à la boucle for qui les déclenche un par un).
Bonne chance
27 févr. 2015 à 16:33
Petite correction par contre, tu as oublié de mettre le path après la chaine grep:
Version testé fonctionnelle:
ou pour le répertoire courant:
28 févr. 2015 à 16:14