Boucle for + move de fichiers

ppierrot34 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

J'ai des petits soucis avec la commande for et le shell unix pour renommer des fichiers.
J'ai dans un fichier txt par exemple plusieurs lignes comme celle-ci :
/rep/rep/rep/rep1/fichier /dir/dir/dir/fichier2

je voudrais tout simplement les déplacer du premier argument fichier vers le deuxieme fichier2

Voici le script :
for file in "`cat list.txt`"
do
mv "$file"
done

Il me demande une destination.
Quelqu'un aurait-il une solution ?
Merci
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

C'est ça que tu veux?
lami20j@debian:~$ ls -l {aaa,bbb}1
-rw-r--r-- 1 lami20j lami20j 0 oct 16 20:21 aaa1
-rw-r--r-- 1 lami20j lami20j 0 oct 16 20:21 bbb1
lami20j@debian:~$ ls -l {aaa,bbb}2
ls: ne peut accéder aaa2: Aucun fichier ou répertoire de ce type
ls: ne peut accéder bbb2: Aucun fichier ou répertoire de ce type
lami20j@debian:~$ cat fic
/home/lami20j/aaa1 /home/lami20j/aaa2
/home/lami20j/bbb1 /home/lami20j/bbb2
lami20j@debian:~$  for i in $(cat fic|tr " " "_");do mv -v ${i/_/ };done
`/home/lami20j/aaa1' -> `/home/lami20j/aaa2'
`/home/lami20j/bbb1' -> `/home/lami20j/bbb2'
lami20j@debian:~$ ls -l {aaa,bbb}1
ls: ne peut accéder aaa1: Aucun fichier ou répertoire de ce type
ls: ne peut accéder bbb1: Aucun fichier ou répertoire de ce type
lami20j@debian:~$ ls -l {aaa,bbb}2
-rw-r--r-- 1 lami20j lami20j 0 oct 16 20:21 aaa2
-rw-r--r-- 1 lami20j lami20j 0 oct 16 20:21 bbb2
lami20j@debian:~$


0
Utilisateur anonyme
 
C'est un peu tortueux, et rarement une bonne idée, d'utiliser for pour lire un fichier :
while read src dest; do mv -v $src $dest; done < fic
Cela dit, on peut éviter l'usage de cat par
tr ' ' '_' < fic
0
ppierrot34 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Oui merci beaucoup
0