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 03/04/2015, à 14:11

louis3d

Renommer en masse d'après une liste de noms

Supposons que vous ayez scanné un gros pavé de feuilles (disons des bulletins d 'adhésions). Il vous faut renommer chacun des fichiers du nom de l'adhérent (genre changer SCAN_0234.pdf en MARTIN_Denis.pdf). Pas facile ! Heureusement vous avez pris soin de les scanner dans l'ordre de leur numéro d'adhérent, et vous disposez d'une liste de tous vos adhérents (nouveaux_noms.txt).

Voici comment procéder :

D'abord si comme moi votre scan initial est un fichier pdf unique, il faut l'éclater en pages individuelles :

pdftk tous_adherents.pdf burst

Vous voici avec une belle liste de fichiers pdf (pg_0001.pdf, pg_0002.pdf, etc...)
Il vous faut ensuite procéder ainsi :

# Faire la liste des anciens noms : 
ls pg_*.pdf > anciens_noms.txt

# Il ne faut pas d'espaces dans la liste des nouveaux noms : 
sed -i 's/ /_/g' nouveaux_noms.txt

# et je ne sais pas si c'est utile mais dans le doute j'ai enlevé les accents dans les nouveaux noms : 
sed -i 'y/āáǎàēéěèīíǐìîōóǒòūúǔùǖǘǚǜûĀÁǍÀĒÉĚÈĪÍǏÌŌÓǑÒŪÚǓÙǕǗǙǛÛ/aaaaeeeeiiiiioooouuuuuuuuuAAAAEEEEIIIIOOOOUUUUUUUUU/' nouveaux_noms.txt

# On va ensuite accoler ces deux listes dans un nouveau fichier
paste -d " " anciens_noms.txt nouveaux_noms.txt > anciens_nouveaux.txt

# Et enfin en une commande, on renomme :
xargs -n 2 mv <anciens_nouveaux.txt

Voilà, ça m'a été bien utile.

Hors ligne