#1 Le 15/10/2013, à 16:05
- Gwigwi
[RESOLU] supprimer un fichier contenant un mot
Bonjour à tous,
J'ai un petit soucis. Je ne connais pas grand chose en script et j'ai essayé de regarder sur le net comment supprimer tous les fichiers d'un répertoire contenant le mot 'error'.
J'ai donc fait un fichier avec ces lignes de commande:
#!/bin/bash
ls | xargs grep -i "error" *.out | xargs rm
Quand je lance le fichier, le prompt me dit qu'il ne peut pas supprimer les fichiers car ils ne sont pas la... Cependant je suis dans le bon répertoire et les fichiers sont tous la...
Si vous avez une maniere de faire pour réaliser cette tache, je serais eternellement reconnaissant!
Merci beaucoup en tout cas...
Gwigwi
Dernière modification par Gwigwi (Le 15/10/2013, à 16:41)
Hors ligne
#2 Le 15/10/2013, à 16:10
- Shanx
Re : [RESOLU] supprimer un fichier contenant un mot
Salut.
J’suis pas sûr d’avoir bien saisi ce que tu demandes, mais pour ce que j’ai compris la commande suivante fonctionne très bien :
rm *error*
EDIT : une autre possibilité, en utilisant find plutôt que grep :
find *error* | xargs rm
Dernière modification par Shanx (Le 15/10/2013, à 16:15)
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#3 Le 15/10/2013, à 16:17
- Gwigwi
Re : [RESOLU] supprimer un fichier contenant un mot
Merci !
En fait, j'ai un dossier avec des fichiers que j'ai nommé 1.out, 2.out,... jusque 5000.out . Certains de ces fichiers contiennent le mot "error" et je veux les supprimer automatiquement. Les fichiers n'ont pas pour nom "error".
Je ne sais pas si c'est plus clair mais merci de la réponse rapide!
Hors ligne
#4 Le 15/10/2013, à 16:24
- Shanx
Re : [RESOLU] supprimer un fichier contenant un mot
Ah, ok. Alors je ferais plus un truc comme ça :
grep -lR 'error' * | xargs rm
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#5 Le 15/10/2013, à 16:24
- Gwigwi
Re : [RESOLU] supprimer un fichier contenant un mot
J'ai testé la commande que tu viens de me donner avec
find *error* | xargs rm
mais tous mes fichiers ont été supprimé ,pas seulement ceux que je voulais.
Merci encore !
Hors ligne
#6 Le 15/10/2013, à 16:28
- Shanx
Re : [RESOLU] supprimer un fichier contenant un mot
Ça, c’était quand j’avais mal compris ce que tu voulais. J’espère que tu n’as rien perdu d’important…
Depuis, j’ai donné une autre solution. En voilà une autre, un peu plus proche de ce que tu avais au départ (sauf que j’utilise find au lieu de ls) :
find . -exec grep -l error {} \; | xargs rm
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#7 Le 15/10/2013, à 16:28
- Compte anonymisé
Re : [RESOLU] supprimer un fichier contenant un mot
Salut
Tu peux essayer ça :
grep -d skip -lIi "error" *.out | xargs rm (-l L minuscule I i majuscule i minuscule)
@+
Dernière modification par Compte anonymisé (Le 15/10/2013, à 16:30)
#8 Le 15/10/2013, à 16:29
- Epehj
Re : [RESOLU] supprimer un fichier contenant un mot
Salut,
Tu peux faire comme ça :
grep error * -l | xargs rm
C'est un L minuscule ! grep error * va regarder dans tous tes fichiers s'il y a le mot error, si oui alors il renvoie le nom du fichier grâce a l'option -l et ensuite tu les supprimes avec xargs rm.
ou ça
find . -exec grep -l error {} \; -exec rm {} \;
Dernière modification par Epehj (Le 15/10/2013, à 16:35)
Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie
Hors ligne
#9 Le 15/10/2013, à 16:39
- Gwigwi
Re : [RESOLU] supprimer un fichier contenant un mot
Re!
Merci, c'est parfait avec
grep -lRi 'error' *.out | xargs rm
Je ne comprend pas vraiment les nuances des autres codes mais merci à tous pour l'efficacité et la rapidité!
PS: pour la suppression des fichiers, je ne suis pas assez fou pour ne pas avoir de backup! (quoi que...)
Gwigwi
Hors ligne