Déplacer un fichier depuis une liste

SassaM

Membre confirmé
4 Novembre 2013
14
0
46
Bonjour,

J'ai beau chercher, je ne trouve pas la solution à mon problème.
Je gère une base d'images très importante et je souhaiterais à partir d'une liste excel (ou d'un fichier .txt). déplacer le fichier image, mentionné dans la liste, dans un autre dossier.

Pour être plus claire :
dans un dossier "FDV", j'ai des images nommées "XXXXX.jpg".
Parmi ces images je dois en déplacer certaines dans un autre dossier "AC".
Les images devant être déplacées sont listées sur un fichier excel.

J'ai regardé via Automator mais je n'ai pas trouvé comment amenée ma liste et pour que mes commandes s'enchaînent parfaitement.
Et je ne suis pas assez calée sur le Terminal pour y arriver seule...HELP....

Merci d'avance.
 
Merci, je suis allée voir la discussion et j'ai essayé d'adapter le script indiqué à mon cas, mais hélas sans résultat.
Lorsque je lance le script :

#!/bin/sh

export MYLISTE="/Users/sandrine/Desktop/listeac.txt"
export DESTDIR="/Users/sandrine/Desktop/ac"
export SRCDIR="/Users/sandrine/Desktop/Sandrine/Commercial/FDV/Visuels FDV"

for i in $(cat "$MYLISTE") ; do
find "$SRCDIR" -name "$i" -ok mv {} "$DESTDIR" \;
done

le Terminal m'écrit :
mac-pro-de-sandrine:~ sandrine$

et mon dossier de destination "ac" reste désespérément vide !

J'y suis depuis ce matin et je ne trouve pas de solutions.
Je suis prête à lister mes noms de fichiers avec un séparateur adéquat au Terminal (mais je ne le connais pas), je me suis également tournée sur le Applescript mais c'est tout aussi flou, et je pense que mon boss ne va apprécier si je bloque trop longtemps.

Merci pour votre aide...
 
plutôt que -ok il faut mettre -exec.

Petite description de ce que ça fait :

1) Première ligne :

#!/bin/sh

c'est, si on rend le fichier exécutable, pour qu'il soit interprété par le bon programme

2) Déclaration de quelques variables (par commodité) :

export MYLISTE="/Users/sandrine/Desktop/listeac.txt"
export DESTDIR="/Users/sandrine/Desktop/ac"
export SRCDIR="/Users/sandrine/Desktop/Sandrine/Commercial/FDV/Visuels FDV"

3) pour toutes les valeurs de la liste (je suppose qu'il y a un nom de fichier par ligne) on cherche (find) le fichier dans la source et, s'il est trouvé, il est déplacé ( mv {} "$DESTDIR" \;) dans la destination
for i in $(cat "$MYLISTE") ; do
find "$SRCDIR" -name "$i" -exec mv {} "$DESTDIR" \;
done
 
Merci de répondre aussi vite.
Désolée je viens d'essayer avec -exec et cela ne fonctionne pas plus, j'ai toujours le même résultat.
Est-ce qu'il y a un moyen de citer les noms des fichiers avec un séparateur dans ton script ?
Peut-être que le soucis viens de mon fichier .txt ?
 
Tel quel, il vaut mieux mettre un nom de fichier par ligne.

Et si ce n'est pas le nom du fichier mais seulement son radical, remplacer :
Bloc de code:
[I]-name "$i"[/I]
par
Bloc de code:
[I]-name "*${i}*"[/I]
 
ALLELUIA !!!!
Je t'adore El Moderator !!!
Ca marche super ! Merci beaucoup !