Suppression de fichiers contenant '|P\n'

Résolu
Am4ZinG -  
 Am4ZinG -
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 ?

A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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   Statut Contributeur Dernière intervention   6 430
 
Tu peux aussi le faire comme ça :

find . -type f -name "*"  -exec egrep -ql "\|P$" {} \; -exec echo "rm -f" {} \;
0
Am4ZinG
 
J'essaie de suite je te remercie pour ta réactivité :)
0
Am4ZinG
 
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   Statut Contributeur Dernière intervention   6 430
 
Tu es sur Windows ou sur Linux là ?
0
Am4ZinG
 
Linux, par contre le egrep ne fonctionne pas sur l'os que j'utilise. J'ai dû utiliser le grep classique
0