Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/04/2021, à 15:39

JoZ79

copie de fichiers selon une partie de leurs noms

Bonjour,
Je suis à la recherche d'une solution pour extraire des fichiers en fonction de leurs noms.
le système créé des copies de fichiers en ajoutant un # à la fin du nom et je souhaiterai extraire seulement le fichier original (sans le # donc).
Pour être plus concret, voici un exemple :

dossier1
  fichier1.doc
  fichier2.doc
  ficher2#.doc
  fichier3.doc
  fichier3#.doc
  fichier4.doc
  fichier5.doc

Dans cette liste, les fichiers que je veux copier dans un autre répertoire sont fichier2.doc et fichier3.doc
J'ai réussi à lister les fichiers avec la commande "find -name *#*" mais je ne sais pas comment mettre à profit cette liste.

Si quelqu'un a une solution je suis preneur !!!

Hors ligne

#2 Le 07/04/2021, à 16:11

Zakhar

Re : copie de fichiers selon une partie de leurs noms

Tu peux exécuter une commande avec 'find" pour chacun des fichiers trouvés.

C'est l'option -exec de find.

Comme elle ne prend qu'un seul paramètre : le fichier trouvé, c'est parfois un peu suant !..

Donc tu fais un script qui va recevoir en entrée "ficher2#.doc" et faire la copie en ayant au préalable retiré le # du nom du fichier.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 07/04/2021, à 16:25

pingouinux

Re : copie de fichiers selon une partie de leurs noms

Bonjour,
Avec ton exemple :

$ for f in *#.doc; do echo "$f" "${f/\#/}"; done
fichier2#.doc fichier2.doc
fichier3#.doc fichier3.doc

Comande à adapter en fonction de ce que tu veux faire.

Hors ligne