Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/11/2012, à 23:13

percherie

Nom de fichier en HEXA souhaité en ASCII

Bonsoir,


Ayant récupéré mes photos depuis mon stockage Picasa, je me retrouve avec tous mes noms de photos en HEXA et en plus doublement codé (le % est devenu %25). Après quelques recherche j'ai trouvé toutes les informations qu'il me faut mais je n'arrive pas à mettre en application la commande magique. Le sujet datant de 2009 je n'ai pas souhaité déterré le sujet.

Les noms d'origine

Traction 11 - Commerciale - 1939.jpg
Traction 11 - Commerciale - 1955.jpg
Traction 11 - Familiale des pompiers d'Azé - 1955.jpg

Les noms récupéré

Traction%252011%2520-%2520Commerciale%2520-%25201939.jpg
Traction%252011%2520-%2520Commerciale%2520-%25201955.jpg
Traction%252011%2520-%2520Familiale%2520des%2520pompiers%2520d%2527Az%25C3%25A9%2520-%25201955.jpg

Après un premier nettoyage remplaçant le %25 par le % :

Traction%2011%20-%20Commerciale%20-%201939.jpg
Traction%2011%20-%20Commerciale%20-%201955.jpg
Traction%2011%20-%20Familiale%20des%20pompiers%20d%27Az%C3%A9%20-%201955.jpg

Ensuite j'ai trouvé la commande idéale mais je ne vois pas comment l'appliquer sur mes noms de fichier : http://forum.ubuntu-fr.org/viewtopic.ph … 6#p2947986

echo -e "${var//\%/\\x}"

Idéalement, je chercherait à faire une commande récursive pour parcourir les sous-dossier. Au pire j'ai une idée pour le faire moi même via un script nautilus accessible depuis le clic droit.

Ce problème touche tous les utilisateurs Picasa, linux ou windows. Je pense que les réponses pourraient servir aux personnes qui prendront le temps de chercher.


Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/

Hors ligne

#2 Le 23/11/2012, à 00:04

Bousky

Re : Nom de fichier en HEXA souhaité en ASCII

Je viens de tester ça (que l'on peut taper directement dans le terminal) sur un dossier de test (récursif) et ça semble marcher :

function url2file {
        while [ "$1" ] ; do
                [ -d "$1" ] && ( cd "$1" ; url2file * )
                mv "$1" "$(echo -e "${1//\%/\\x}")"
                shift
        done
}
url2file *

Si tu n'as pas encore remplacé les « %25 » en « % », il suffit de remplacer « % » par « %25 » dans la quatrième ligne.


Avant j'ai ça :

$ ls *
fichier%20de%20test%25

dossier%20de%20test:
fichier%20de%20test_2

et j'obtiens ça :

$ ls *
fichier de test'

dossier de test:
fichier de test

Ça correspond à l'arborescence suivante :

dossier de travail
  ├ fichier de test'     (fichier%20de%20test%25)
  └ dossier de test      (dossier%20de%20test)
       └ fichier de test (fichier%20de%20test)

Dernière modification par Bousky (Le 23/11/2012, à 00:10)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#3 Le 23/11/2012, à 09:42

percherie

Re : Nom de fichier en HEXA souhaité en ASCII

Merci cela fonctionne parfaitement mais j'aimerai savoir comment fonctionne la ligne suivante, j'ai des difficulté à comprendre le fonctionnement :

                [ -d "$1" ] && ( cd "$1" ; url2file * )

En vu de l'intégrer dans la doc, je pensait modifier le code pour faire deux variantes selon les besoins :
- Tout parcourir (ce que tu a fait)
- Traiter le dossier courant et son contenu uniquement (pour les frileux ou besoins spécifique non prévu)

C'est pour cela que j'aimerai comprendre la ligne en question, après si tu veut me filer la main je ne suis pas contre mais je ne veut pas prendre de ton temps ;-)
Pour l'instant je ne sais pas si il est mieux de proposer deux scripts ou un seul script unifié posant la question à chaque fois. Qu'en pense tu ?


Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/

Hors ligne

#4 Le 23/11/2012, à 12:22

Bousky

Re : Nom de fichier en HEXA souhaité en ASCII

[ -d "$1" ]

Teste si $1 est un dossier.

&&

C'est un et logique. La partie de droite n'est exécutée que si la partie de gauche est vrai. C'est une manière plus compacte d'écrire « if … ; then … ; fi »

( … )

Forke un nouveau shell. Ça permet de limiter l'impacte du « cd ».


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#5 Le 23/11/2012, à 13:13

pingouinux

Re : Nom de fichier en HEXA souhaité en ASCII

Bonjour,

percherie #3 a écrit :

Pour l'instant je ne sais pas si il est mieux de proposer deux scripts ou un seul script unifié posant la question à chaque fois.

Personnellement, je ferais un seul script, avec un paramètre -R optionnel, qui déclencherait le traitement récursif (comme pour grep, ls, chown, chgrp…).

Hors ligne

#6 Le 04/12/2012, à 23:02

percherie

Re : Nom de fichier en HEXA souhaité en ASCII

Désolé pour le temps de réponse, je n'avais pas mon Xubuntu sous la main, je préférais être dessus pour faire mes essais .

pingouinux a écrit :

Bonjour,

percherie #3 a écrit :

Pour l'instant je ne sais pas si il est mieux de proposer deux scripts ou un seul script unifié posant la question à chaque fois.

Personnellement, je ferais un seul script, avec un paramètre -R optionnel, qui déclencherait le traitement récursif (comme pour grep, ls, chown, chgrp…).

Tu aurait un exemple sur lequel je pourrait m'inspirer ? Une fois fait je pense poster ce script sur la doc de picasa


Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/

Hors ligne