Forum Programmation.shell question con sur le shell

Posté par .
Étiquettes : aucune
0
19
mai
2005
Salut,
Je me rends bien compte de la betise de la question mais je galere...
je veux supprimer les fichiers png d'un répertoire sauf le 5.png sachant que les fichiers vont de 0.png jusqu'à n.png.

ceci ne fonctionne pas : rm -f [!5].png
  • # quel shell exactement ? , les globings/wildcards ne sont pas des regexp

    Posté par . Évalué à 3.

    quel shell exactement ?
    parce que sous bash ça marche

    les globings/wildcards des shells ne sont pas des regexp (expression regulieres/rationelles) et peuvent dépendre de chaque shell

    sinon évite le -f pour faire des tests :)
    je te conseille plutot d'utiliser la commande echo pour faire ces tests

    example sous bash:

    $ ls
    1.png 2.png 3.png

    $ echo [!1].png
    2.png 3.png

    $ rm [!1].png

    $ ls
    1.png
  • # n ?

    Posté par . Évalué à 2.

    Tout dépend de la limite maximum de n. Si c'est neuf, pas de problème ça tient sur un seul caractère. Si c'est au dessus, tu vas avoir des problèmes car le nombre de caractères est variable. Bon sous bash, tu peux essayer ceci :

    $ for i in *.png ; [ $i == 5.png ] || rm -f $i ; done

    Cela devrait épargner ton fichier 5.png, et fonctionner pour n'importe quel autre motif.
  • # Je me rend bien compte de la betise de la réponse mais...

    Posté par (site web personnel, Mastodon) . Évalué à 2.

    Je me rend bien compte de la betise de la réponse mais... s'il n'y a qu'un seul fichier à NE PAS effacer, pourquoi ne le déplace-tu pas en dehors du dossier en question le temps de faire un rm sur les autres fichiers ?
  • # rm [^5].png

    Posté par . Évalué à 1.

    ça doit fonctionner.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.