10.12 Sierra Rechercher une Liste de fichiers

ChristopheL.

Membre enregistré
30 Janvier 2018
3
0
39
Bonjour à tous,

D'habitude, je trouve toutes les réponses à mes questions dans les forums par de simples recherches. Et je vous remercie par la richesse de vos réponses !

Là, justement, je ne trouve aucune réponse à ce problème.
Ce problème est à l'inverse de ce que recherche quelqu'un en général.
Car je ne cherche pas à faire une liste de fichiers dans un .TXT, mais précisément l'inverse.
J'ai une liste de fichiers en TXT, et je souhaiterais les récupérer pour les séparer des autres fichiers.

Dans dans un dossier j'ai 2000 photos, mais je voudrais extraire 80 fichiers qui sont listé dans un TXT. J'ai tenté pleins de "bidouilles" dans la recherche du Finder, mais rien n'y fait.
Pour cette fois ci, à la limite, je pourrais me taper fichier par fichier mais c'est une problématique que j'aurai régulièrement à l'avenir.

Avez vous des pistes, des idées, des solutions ?
Merci d'avance,
Bien à vous,
 
Bonjour
si je cerne bien ton problème, je ne vois qu'un script qui pourrait venir à bout d'une telle tâche, AppleScript ou peut être un processus Automator…

Fais une ch'tite recherche en ce sens sur la toile, il existe peut-être des scripts tout faits…


Sinon un copier-coller nom par nom du fichier texte au champ de recherche Finder… ?
 
Si j'ai bien compris, tu as un fichier texte contenant une liste de fichier, par exemple :
photo1.jpg
photo2.jpg
...

Tu voudrais que toutes les photos dont le nom est présent dans ce fichier soient cherchées dans un dossier et copiées dans un autre ? Un script peut effectivement faire cela facilement.
 
Je pense que vous avez bien compris et je vous remercie de vos réponses.
Je vais chercher dans ce sens.

Merci Beaucoup,

Si je trouve, je vous indiquerais ma découverte.
 
Crée toi un fichier "mon_script.sh" contenant ceci :
Bloc de code:
#!/bin/bash

dossier="/Users/mon_user/Pictures"
liste="/Users/mon_user/fichier.txt"
destination="/Users/mon_user"

while read
do
  find "$dossier" -name "$REPLY" -exec cp "{}" "$destination/." \;
done < "$liste"

Les parties dossier, liste et destination sont à modifier bien évidement.
Lance le terminal, va dans le répertoire où se trouve ce fichier "mon_script.sh" et rend le executable pour ensuite le lancer.
Bloc de code:
cd "/Users/mon_user/rep_du_script"
chmod +x mon_script.sh
./mon_script.sh
 
Je viens de rechercher du coté des scripts, intéressant !!!

Je viens de faire un bout de script avec ce que j'ai compris, ça me renvoi bien l'information que c'est copié, mais ce n'est pas copié.
Vous avez une idée ?

Bloc de code:
set x to choose file with prompt "Sélectionnez un fichier .txt"
set source to choose folder with prompt "Choix du dossier source"
set cible to choose folder with prompt "choix du dossier cible"

set fichiers to ""
set cheminimage to ""
set myList to paragraphs of (read x as «class utf8»)

repeat with i in myList
    if (exists i) then set fichiers to fichiers
    tell application "Finder"
        copy fichiers to cible
    end tell
end repeat

tell application "Finder"
    (display dialog ("Fichiers copiés") buttons {"Ok"})
end tell

Merci beaucoup !
 
Salut Christophe

Une petite variante --> tu peux utiliser la commande dont la syntaxe générale est la suivante :
Bloc de code:
rsync --files-from=ta_liste.txt [dossier_source] [dossier_destination]

Commande exemplifiée : suppose que -->

  • fichier-liste = ~/Desktop/Liste.txt
  • dossier-source = ~/Pictures/BROL
  • dossier-destination = ~/Desktop/TRI

la commande devient -->
Bloc de code:
rsync --files-from=~/Desktop/Liste.txt ~/Pictures/BROL ~/Desktop/TRI

  • suite à quoi les fichiers du dossier-source BROL correspondant à Liste.txt sont copiés dans le dossier-destination TRI.