IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> récupérer nom des fichiers, commande unix
Options
hubeert
posté 20 Aug 2017, 16:02
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 857
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



bonjour a tout le monde;
Dans un dossier ou se trouve des photos ; je cherche a récupérer le nom des fichiers et de les renommer.
par exemple photo1.JPG
photo2.JPG
dans le terminal
la commande me récupère tous les noms des fichiers dans mon dossier photo
la commande renomme les fichiers ( extension comprise) en "photo1.JPG", ( la virgule c'est pour faire un tableau)
a la sortie j'aurai ca "photo1.JPG", "photo2.JPG", etc etc
de fait je n'aurai plus qu'a récupérer cette chaine, enlever la dernière virgule et faire un tableau ( c'est pour faire une galerie en php)
Si c ela est possible bien entendu.
merci beaucoup.


--------------------
un petit SuDoKu ?
mots fantômes + pendu
1 p'tit tetris ?


des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Aug 2017, 17:42
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 5 754
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Salut,

Il y a peut être plus élégant, mais j'ai pondu ce script, qui fonctionne.
Ouvre un terminal, rends toi dans le dossier contenant les photos à renommer et colle cette commande:

for i in *.jpg ; do mv $i Photo_$PHOTO".jpg"; PHOTO=$[PHOTO+1]; done ; ls *.jpg >> liste_photos.csv

cela va renommer tous les jpg du dossier dans lequel tu te trouves en Photo_1.jpg Photo_2.jpg Photo_3.jpg etc et ecrire un listing de ces photos dans ce repertoires sous le nom liste_photos.csv (Comma-Separated Values) que tu pourras utiliser pour un tableau.


-- Tu peux copier la commande dans un fichier que tu rendras executable, plus pratique si tu as plusieurs dossiers à traiter

Tu créés le fichier:
nano rename_image.sh

Tu y colles le code suivant
Code
for i in *.jpg;
do mv $i Photo_$PHOTO".jpg";
PHOTO=$[PHOTO+1];
ls *.jpg  >> liste_photos.csv;
done;

Tu le rends executable
chmod +x rename_image.sh

et tu l'executes par
./rename_image.sh


Ce message a été modifié par _Panta - 20 Aug 2017, 18:15.


--------------------
- Macbook Pro TouchBar 15.4" - 512GB/core i7@2,7Ghz
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone7@128GB
Go to the top of the page
 
+Quote Post
hubeert
posté 20 Aug 2017, 18:36
Message #3


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 857
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou _Panta.
Merci de la peine que tu te donnes.
lorsque tu me dis rends toi dans le dossier; c'est a dire j'indique le chemin? il y a tel une separation entre le chemin et le script ? ( il me fait une erreur : -bash: syntax error near unexpected token `do')
merci
sinon j'ai trouvé une solution avec avec la commande clic droit sur les fichiers sélectionnés " renommer les fichiers"
format nom et index
emplacement avant le nom
format personnalisé (la je mets le nom que je veux)
commencer la numérotation a 1
je me retrouve avec un nom de fichier : 1maPhoto.JPG etc etc
ensuite sur le serveur j'importe ce dossier
et dans une boucle je récupère les photo que je veux afficher dans mon html.

Comme tu dis il a surement plus optimisé et plus élégant; mais c'est juste pour faire une galerie de temps en temps, genre fête de famille; afin que tous puissent récupère les photos qui les intéresse.
En tout cas merci pour tout.
si ca intéresse quelqu'un jai la commande pour faire les vignettes et pour réduite la taille des photos dans le terminal.

Merci a toi


--------------------
un petit SuDoKu ?
mots fantômes + pendu
1 p'tit tetris ?


des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Aug 2017, 19:09
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 5 754
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Tu demandais "en ligne de commande". Il y a plein d'outil graphique sinon tongue.gif
Copie-colle la ligne que j'ai donné, elle est correcte.
for i in *.jpg ; do mv $i Photo_$PHOTO".jpg"; PHOTO=$[PHOTO+1]; done ; ls *.jpg >> liste_photos.csv

Il faut que être dans le repertoire que tu veux attaquer naturellement, donc cd Pictures/mon_dossier par exemple


--------------------
- Macbook Pro TouchBar 15.4" - 512GB/core i7@2,7Ghz
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone7@128GB
Go to the top of the page
 
+Quote Post
hubeert
posté 20 Aug 2017, 19:50
Message #5


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 857
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou.
je ne suis pas spécialement branché ligne de commande !! biggrin.gif
oui évidement je lai copié collé. mais jai le message d'erreur, sans doute ne sait il pas ou est le dossier.
j'ai juste ouvert le terminal ; mis le chemin absolu du dossier puis tapé ta commande. et jai le message d'erreur.
je crois savoir d'ou viens l'erreur. huh.gif
*jpg alors que dans mon dossier c'est JPG. et vraiment merci i


--------------------
un petit SuDoKu ?
mots fantômes + pendu
1 p'tit tetris ?


des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 25th February 2018 - 16:56