Copié fichier depuis liste de nom. - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 13-12-2014 à 17:30:10
en shell, avec une boucle du genre :
while read ligne; do cp X.mp3 $ligne.mp3; done < x.txt
http://www.commentcamarche.net/faq [...] -par-ligne
Marsh Posté le 13-12-2014 à 17:41:40
Merci pour ta réponse Mjules. Tu pourais stp essayé de m'aider un peux plus. Car je t'avoue que je n'y connais pas grand chose avec linux. On m'a juste dis que si je voulais faire ça, vaudrait mieux que je passe par linux, donc je l'ai installer dans une machine virtuel.
J'ai essayer de tapper while read ligne; do cp X.mp3 $ligne.mp3; done < x.txt dans la console d'ubuntu mais j'ai eu l'erreur suivante.
Code :
|
Marsh Posté le 13-12-2014 à 23:17:53
eh, ben... si "on" te dit de souder deux fils électriques pour allumer une ampoule, tu vas acheter un poste oxyacétylène ?
il faut chercher un peu !
"Windows lire fichier ligne par ligne"
Je n'utilise plus W$ depuis ~15 ans, et j'ai mis 5 mn pour trouver un code qui devrait fonctionner sur W$ :
Code :
|
à peu près, parce que je n'ai pas de W$ pour tester.
Marsh Posté le 14-12-2014 à 10:53:23
Code :
|
Code :
|
Code :
|
C'est juste ça que tu voulais faire ?
Sous Windows aussi ça se fait simplement:
Code :
|
Marsh Posté le 21-12-2014 à 02:04:15
Code :
|
Marsh Posté le 21-12-2014 à 13:01:09
Ok, Microsoft Windows c'est un "Linux et OS Alternatifs"
Après par rapport au contexte, ça peut se faire aussi sur Windows, c'est probablement aussi pour apprendre à coder "qu'on" lui a dit de le faire sur Linux.
Après le code de MJules fonctionne chez moi, mais il faudrait voir le contenu de ton fichier "x.txt", et son format. Je soupçonne une erreur de lecture CR/LF...
Un petit
tr -d '\r' < x.txt > x_lin.txt |
et utiliser x_lin.txt plutôt que x.txt pour le code (source du code : ici)
Marsh Posté le 21-12-2014 à 13:55:09
Citation : On m'a juste dis que si je voulais faire ça, vaudrait mieux que je passe par linux[...] |
moi, j'entends : «Windows n'est pas capable de faire ça (simplement), vaudrait mieux [...] passe[r] par linux».
mais bon.
saura-t-on jamais ce qu'il en est réellement ? reverra-t-on Cetaubofix pour nous informer du succès de nos solutions ? ...
Code :
|
et hop, plus de fichier temporaire !
Marsh Posté le 19-04-2015 à 15:04:58
Salut.
Je cherche à faire la meme chose. J'ai essayé toutes vos commande et elles fonctionnent bien. Le seul probleme c'est qu'avant le . de l’extension j'ai un espace.
Par exemple au lieu d'avoir a.mp3 j'ai a .mp3
J'ai essayez les commandes suivante
Code :
|
Code :
|
Tous ca fonctionne bien, mais l'espace pause probleme.
Sauriez vous d'ou cela vient ? Ma liste est en fichier txt, j'ai essayé de changer le .txt en .csv, voir si le problème vient de la liste. Mais ca n'a rien changer.
Marsh Posté le 19-04-2015 à 21:56:48
salut,
comment as-tu récupéré cette liste de fichiers dans un fichier (x.txt) ?
Marsh Posté le 20-04-2015 à 13:35:17
Ouvre ton fichier de nom dans vim et tape cette commande :
":%s/ //g"
Ensuite tu sauves (:wq) et tu relances ton script.
Marsh Posté le 20-04-2015 à 13:45:19
ouaip, comme ça tous les espaces seront supprimés, même ceux qui pourraient figurés dans le nom d'un fichier
il vaut mieux stipuler qu'on veut supprimer uniquement ceux qui figurent en fin de ligne !
Code :
|
Marsh Posté le 20-04-2015 à 17:08:15
netmonk a écrit : Ouvre ton fichier de nom dans vim et tape cette commande : |
Sinon y a sed pour ça
Marsh Posté le 20-04-2015 à 19:43:57
Watael très juste !
O'gure ? There is more than one way to do it ! en Perl aussi, en awk, en tr, en python...
Pas la peine de voir rouge pour un gars qui a installé une ubuntu spécialement pour cette manip.
(alors qu'il pouvait le faire en shell windows par ailleurs et comme précisé antérieurement)
Marsh Posté le 24-04-2015 à 14:18:38
Il y a aussi cygwin pour avoir un shell "unix" sous Windows, et d'autres façons mais bon la VM sous linux ça se fait, vous me donnez l'impression qu'on est en 1997 et que c'est très choquant de gaspiller tous ces gigaoctets et tout ce CPU .
Pour les conversions de fichier entre format windows et unix, au lieu de faire ça à la main on peut aussi utiliser le programme "dos2unix".
Au lieu de faire une ligne à rallonge telle que
while read line ; do cp x.mp3 "${line}.mp3" ; done <x.txt |
on peut essayer d'écrire ça dans un script :
|
Marsh Posté le 13-12-2014 à 17:12:08
Bonjour. Je voudrais savoir si avec linux il est possible de copié un meme fichier plusieurs fois dans un dossier avec un nom différent que j'ai dans une liste.
Je vais essayé de donné un exemple pour essayer d'etre plus claire.
J'ai un fichier x.txt qui contient ce texte
Un fichier mp3 qui sp'alle X.mp3
Comment copié le fichier X.mp3 avec les différents nom contenue dans le fichier x.txt pour avoir dans un dossier les fichiers suivant
a.mp3
b.mp3
c.mp3
d.mp3
e.mp3
f.mp3
Merci