Suppression de fichiers contenant '|P\n'

Résolu/Fermé
Am4ZinG - Modifié par Am4ZinG le 12/06/2011 à 17:52
 Am4ZinG - 13 juin 2011 à 11:15
Bonjour,

Je suis actuellement entrain de perdre mes neurones sur une commande linux que j'essaie de passer.

Dans un répertoire contenant une série de fichiers texte.

J'essaie de supprimer les fichiers contenant '|P' en fin de ligne.

J'ai essayé : find -type f -exec grep -q '\|P\n' '{}' \; -exec rm '{}' \;

Normalement je pense pas m'être trompé, \| pour banaliser le pipe et \n pour la fin de ligne.

Mais ça supprime la totalité de mes fichiers...

Someone can help me ?

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
12 juin 2011 à 18:04
Salut,

Pour le "pipe" c'est bon, par contre pour la fin de ligne c'est plutôt "$".
De plus le "grep -q" supprime toute sortie ;-(

Essaie comme ça (enlève le "echo" et les guillemets si le résultat te parait conforme) :

$ ls
fich1  fich2  fich3

$ cat fich1
bonjour
à vous
Comment allez-vous

$ cat fich2
bonjour
à vous|P
Comment allez-vous

$ cat fich3
bonjour
à vous
Comment allez-vous|P

$ find . -type f -name "*"  -exec egrep -l "\|P$" {} \; | xargs  echo "rm -f"
rm -f ./fich3 ./fich2

$

;-))
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
12 juin 2011 à 18:08
Tu peux aussi le faire comme ça :

find . -type f -name "*"  -exec egrep -ql "\|P$" {} \; -exec echo "rm -f" {} \;
0
J'essaie de suite je te remercie pour ta réactivité :)
0
Hum ça n'a pas fonctionné, ça tente toujours de supprimer tous mes fichiers.

Je vais rajouter un peu plus d'infos car, je n'ai pas été assez clair je pense.

Dans mes fichiers textes, il y a exactement 2 fois '|P' en fin de ligne.

Par exemple,

bonjour
à vous|P
Comment allez-vous|P

C'est ce type de fichier que je veux supprimer
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
12 juin 2011 à 18:30
Tu es sur Windows ou sur Linux là ?
0
Linux, par contre le egrep ne fonctionne pas sur l'os que j'utilise. J'ai dû utiliser le grep classique
0