Modifier l'extension des fichiers d'un dossier
Résolu
xunil2003
Messages postés
765
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Existe-t-il une solution pour récupérer les noms de fichiers d"un dossier sans l'extension. Je cherche à supprimer l'extension d'une liste de fichier puis a redonner une nouvelle extension au fichier.
Comment puis je faire ??
Mes images
Merci
Existe-t-il une solution pour récupérer les noms de fichiers d"un dossier sans l'extension. Je cherche à supprimer l'extension d'une liste de fichier puis a redonner une nouvelle extension au fichier.
Comment puis je faire ??
source="/home/laurent/Images/diapos/2/" destination="/home/laurent/Images/diapos/2/3/" fichier_destination=DSC00 ext=jpg nf () { ls -l $source | grep '-' | cut -c54,55,56,57,58,59,60,61 } cd $source for fichier in * $(nf) do #cp -v $fichier $destination$fichier.$ext cp -v $fichier $destination$(nf).$ext done
Mes images
laurent@PC-ubuntu:~/bash/Ubuntu_12.04$ ls -F /home/laurent/Images/diapos/2/ 3/ PICT0003.JPG PICT0006.jpg PICT0008.JPG. PICT0011.JPG. PICT0014.JPG. PICT0017.JPG. PICT0001.JPG PICT0004.JPG PICT0006.JPG PICT0009.JPG. PICT0012.JPG. PICT0015.JPG. PICT0018.JPG. PICT0002.JPG PICT0005.JPG PICT0007.JPG. PICT0010.JPG. PICT0013.JPG. PICT0016.JPG. PICT0019.JPG. laurent@PC-ubuntu:~/bash/Ubuntu_12.04$
Merci
A voir également:
- Modifier extension de plusieurs fichiers à la fois
- Modifier extension fichier - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Comment réduire la taille d'un fichier - Guide
- Renommer plusieurs fichiers en même temps - Guide
6 réponses
Re,
Non en fait ce que je cherche à savoir c'est si ces fichiers existent bel et bien et s'il faut aussi les renommer en supprimant le point final ?
Oui il existe bel et bien sur la carte sd de l'appareil photo, mais attention il change de nom de fichier en fonction du nombre de photos prises :
Oui les supprimer si possible de la sd carte de l'appareil photo une fois déplacer ou copier.
Pour mener à bien la conception d'un script (ou commande) il faut avoir toutes les cartes en main, sans quoi on a vite fait de patauger ;-\
Tout à fait d'accord avec vous.
Merci.
Non en fait ce que je cherche à savoir c'est si ces fichiers existent bel et bien et s'il faut aussi les renommer en supprimant le point final ?
Oui il existe bel et bien sur la carte sd de l'appareil photo, mais attention il change de nom de fichier en fonction du nombre de photos prises :
PICT0007.JPG PICT0008.JPG PICT0009.JPG PICT00010.JPG etc...
Oui les supprimer si possible de la sd carte de l'appareil photo une fois déplacer ou copier.
Pour mener à bien la conception d'un script (ou commande) il faut avoir toutes les cartes en main, sans quoi on a vite fait de patauger ;-\
Tout à fait d'accord avec vous.
Merci.
Salut,
Pas la peine de tarabiscoter ton script de la sorte ;-\
Avec le remplacement des paramètres du shell (bash 4 je suppose), c'est faisable...
Quelques exemples :
Par contre dans ton répertoire on voit des fichiers ayant un point final (PICT0007.JPG.), c'est quoi ce truc ?
Pas la peine de tarabiscoter ton script de la sorte ;-\
Avec le remplacement des paramètres du shell (bash 4 je suppose), c'est faisable...
Quelques exemples :
$ var="/home/laurent/Images/diapos/2/PICT0001.JPG" $ echo "${var%/*}" /home/laurent/Images/diapos/2 $ echo "${var#*.}" JPG $ new_var="${var#*.}" $ echo ${new_var} JPG $ echo ${new_var,,} jpg $
Par contre dans ton répertoire on voit des fichiers ayant un point final (PICT0007.JPG.), c'est quoi ce truc ?
Bonjour Zipe31,
Par contre dans ton répertoire on voit des fichiers ayant un point final (PICT0007.JPG.), c'est quoi ce truc ?
L'objectif est de renommé l'extension des fichiers dans un dossier.
Car une fois les photos transférées de mon appareil photo sur mon disque dur les images ont l'extension "JPG", et quand je veux les publier sur le net, elle ne sont pas reconnu en tant que tel et suis obligé de les renommer en "jpg"manuellement a la main.
Version bash
Je ne comprends pas trop bien comment utiliser dans mon script ce que vous me dites comme variable système.
Au début j'avais fait ceci mais je n'ai pas trouvé la solution à mon problème.
Merci.
Par contre dans ton répertoire on voit des fichiers ayant un point final (PICT0007.JPG.), c'est quoi ce truc ?
L'objectif est de renommé l'extension des fichiers dans un dossier.
*.JPG ----> .jpg PICT0001.JPG ----> PICT0001.jpg PICT0002.JPG ----> PICT0002.jpg PICT0003.JPG ----> PICT0003.jpg etc...
Car une fois les photos transférées de mon appareil photo sur mon disque dur les images ont l'extension "JPG", et quand je veux les publier sur le net, elle ne sont pas reconnu en tant que tel et suis obligé de les renommer en "jpg"manuellement a la main.
Version bash
laurent@PC-ubuntu:~/bash/Ubuntu_12.04$ bash --version GNU bash, version 4.2.24(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2011 Free Software Foundation, Inc. Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html> laurent@PC-ubuntu:~/bash/Ubuntu_12.04$
Je ne comprends pas trop bien comment utiliser dans mon script ce que vous me dites comme variable système.
Au début j'avais fait ceci mais je n'ai pas trouvé la solution à mon problème.
#! /bin/bash for fichier in $HOME/Images/diapos/2/* do echo $(basename $fichier .${fichier##*.}) done
Merci.
Re-
L'objectif est de renommé l'extension des fichiers dans un dossier.
*.JPG ----> .jpg
Oui ça j'avais bien compris. Mais dans ton listing en fin de ton 1er message, certains fichiers ont un point final dans leur nom.
Donc est-ce vraiment le cas ? Il est important de le savoir, sans quoi toutes solutions apportées ne marcheront pas à 100%.
Pourquoi veux-tu déplacer les fichiers dans un nouveau répertoire ? Est-ce vraiment utile ?
Si ce n'est pas utile, la solution donnée par dubcek serait beaucoup plus adaptée à ton cas, sous réserve de ta réponse concernant le point final sur le nom de certains fichiers...
L'objectif est de renommé l'extension des fichiers dans un dossier.
*.JPG ----> .jpg
Oui ça j'avais bien compris. Mais dans ton listing en fin de ton 1er message, certains fichiers ont un point final dans leur nom.
Donc est-ce vraiment le cas ? Il est important de le savoir, sans quoi toutes solutions apportées ne marcheront pas à 100%.
Pourquoi veux-tu déplacer les fichiers dans un nouveau répertoire ? Est-ce vraiment utile ?
Si ce n'est pas utile, la solution donnée par dubcek serait beaucoup plus adaptée à ton cas, sous réserve de ta réponse concernant le point final sur le nom de certains fichiers...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Vous voulez dire comme ceci :
"PICT0007.JPG."
Non c'est du a un erreur de test du script.
Il ne faut pas de point après l'extension ".JPG."
Pourquoi veux-tu déplacer les fichiers dans un nouveau répertoire ? Est-ce vraiment utile ?
Pour récupérer les photos sur la sd carte de l'appareil photo afin de les transférer vers mon disque dur avec la bonne extension.
/media/sdf /* sHOME/Images/photos/date/nom-fichier-image.jpg
Merci.
Vous voulez dire comme ceci :
"PICT0007.JPG."
Non c'est du a un erreur de test du script.
Il ne faut pas de point après l'extension ".JPG."
Pourquoi veux-tu déplacer les fichiers dans un nouveau répertoire ? Est-ce vraiment utile ?
Pour récupérer les photos sur la sd carte de l'appareil photo afin de les transférer vers mon disque dur avec la bonne extension.
/media/sdf /* sHOME/Images/photos/date/nom-fichier-image.jpg
Merci.
Re,
Merci Zipe31.
Voilà j'ai fini mon script.
Je le diffuse car j'ai le même problème avec des appareils photo (un Fuji et un Sony) y compris avec les scanners (un Brother, un Epson et un Medion).
Tout crée les images avec l'extension .JPG
Je pense que tout le monde doit avoir le me problème.
Intérêt de ce script :
- il renomme les images. JPG en images Jpg
- Vous pouvez modifier le chemin des dossiers sources et de destination par défaut directement dans le code.
- Vous pouvez indiquer depuis le shell l'emplacement des dossiers sources et de destination si ceux par défaut ne sont pas corrects.
- Si le l'emplacement des dossiers sources et de destination vous sont corrects, il vous suffit d'appuyer sur la touche Entrer.
Merci.
Code
Merci Zipe31.
Voilà j'ai fini mon script.
Je le diffuse car j'ai le même problème avec des appareils photo (un Fuji et un Sony) y compris avec les scanners (un Brother, un Epson et un Medion).
Tout crée les images avec l'extension .JPG
Je pense que tout le monde doit avoir le me problème.
Intérêt de ce script :
- il renomme les images. JPG en images Jpg
- Vous pouvez modifier le chemin des dossiers sources et de destination par défaut directement dans le code.
- Vous pouvez indiquer depuis le shell l'emplacement des dossiers sources et de destination si ceux par défaut ne sont pas corrects.
- Si le l'emplacement des dossiers sources et de destination vous sont corrects, il vous suffit d'appuyer sur la touche Entrer.
Merci.
Code
#!/bin/bash echo "" echo "+---------------------------------------------------------------+" echo "| Renomme l'extension des images JPG en jpg de l'appareil photo |" echo "+---------------------------------------------------------------+" echo "| Mis à jour : 11/02/2013 |" echo "+---------------------------------------------------------------+" echo "" #---------- CONFIGURATION DES VARIABLE DU SCRIPT ----------- source_default="$HOME/Images/diapos/2/" destination_default="$HOME/Images/diapos/2/3/" corbeille="$HOME/.local/share/Trash/files/" #---------- VERIFIE SI LE PAQUET EST INSTALLE ----------- paquet=trash-cli dpkg --get-selections | grep -w ^$paquet[^-] >/dev/null if [ 'echo $?' -eq 1 ]; then Code echo "le paquet $paquet n'est pas installé" echo "Veuillez installer le paquet $paquet pour continuer" echo "sudo apt-get install $paquet" exit else echo "Vérification OK........ Le paquet $paquet est installé" fi echo "" echo "Veuillez indiquer le chemin la ou ce trouve les photos sur de la carte memoire de l\'appareil photo" read -p "Par défault : $source_default appuyer sur la touche entrée si correct : " source_choisi [ -n "$source_choisi" ] && source_default=$source_choisi echo "Vous avez choisi : $source_default" echo "" echo "Veuillez indiquer le chemin ou placer les photo sur votre disque dur" read -p "Par défault : $destination_default appuyer sur la touche entrée si correct : " destination_choisi [ -n "$destination_choisi" ] && destination_default=$destination_choisi echo "Vous avez choisi : $destination_default" cp -v $source_default*.JPG $destination_default echo "" cd $destination_default echo "Simulation des fichiers à renomer" rename -n 's/\.JPG\.*$/.jpg/' *.JPG* echo "" echo "Est-ce correct, voulez-vous continuer............ (o/n)" read question1 case $question1 in y|Y|o|O) echo "Continuer........" echo "" rename 's/\.JPG\.*$/.jpg/' *.JPG* echo "" echo "Voici les fichiers renommer :" echo "Emplacement : $destination_default" ls cd ~ echo "Terminé" echo "" ;; n|N) echo "Annulé par l'utilisateur" echo "" cd ~ exit ;; *) echo "Erreur de frappe, touche incorrecte, veuillez recommencer !" exit ;; esac echo "Faut il supprimer les images de l'appareil photo........................ (o/n)" echo "ATTENTION, une fois les fichiers supprimez-vous pourrez les récupérer avec la corbeille !" echo "Si la corbeille n'a pas été vidée entre-temps !" echo "" read -p "Êtes vous sûr de supprimer les images de l'appareil photo............ (o/n)" question2 case $question2 in y|Y|o|O) echo "Suppression des fichiers *.JPG ........" echo "" trash-put $source_default*.JPG echo "" ;; n|N) echo "Suppression des fichiers annulé par l'utilisateur" echo "" cd ~ exit ;; *) echo "Erreur de frappe, touche incorrecte, veuillez recommencer !" exit ;; esac
Si c'est bon, enlève le "-n".