2 votes

Supprimer tous les fichiers dont le nom contient une expression rationnelle

Je souhaite supprimer tous les fichiers d'un répertoire dont le nom est contient la regex : [0-9]+

Où j'ai au moins l'intention [0-9]+ pour correspondre à un espace suivi d'un ou plusieurs chiffres, avec tout texte en tête ou en queue.

Je n'arrive pas à faire fonctionner ce qui suit :

S'il vous plaît, comment dois-je faire ?

0 votes

Bienvenue à Ask Different. Excellente recherche - merci de montrer ce que vous avez envisagé. Lorsque vous dites que vous n'arrivez pas à faire fonctionner ce qui suit, à quoi cela ressemble-t-il ? (Il est difficile de deviner les progrès que vous faites ou si la suppression d'un fichier est le principal problème et non l'élaboration d'une expression régulière).

0 votes

Merci pour le conseil - j'y penserai lorsque je poserai des questions à l'avenir. Je m'excuse d'avoir manqué cette question avant d'avoir reçu la réponse ci-dessous. Souvent, mon problème était inconnu. La commande se terminait, mais ne s'exécutait pas comme prévu.

2voto

John Palmieri Points 133

La commande find -E . -type f -regex ".* [0-9]+.*" -print imprime les fichiers correspondant à votre description. (Par rapport à la réponse à https://unix.stackexchange.com/questions/1011/delete-files-in-a-directory-that-match-a-regexp-using-a-mac-terminal j'ai ajouté "-E" - voir la page de manuel de find .) Ainsi, par exemple

find -E . -type f -regex ".* [0-9]+.*" -print0 | xargs -0 rm

supprime les fichiers correspondants.

0 votes

Fantastique, il m'a fait gagner des heures. Merci beaucoup !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X