logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Scripts - renommer fichiers et répertoires

  • Objet : Sripts pour renommer des séries de répertoires et fichiers
  • Niveau requis :
  • Commentaires : À l'occasion d'une remise à plat de ma cinémathèque, je me trouve à devoir homogénéiser le nom des fichiers et répertoires des films présents sur divers disques durs.

Introduction

  1. Il est dangereux d'utiliser des scripts dont on ne connaît pas la signification ni la provenance afin de se renseigner pour leur usage perso.
  2. Il est dangereux d'utiliser des scripts sans les tester sur une petite sav en exemple.
  3. Il est préférable d'avoir des sauvegardes complètes de ce que l'on va renommer, quitte après de s'en débarrasser une fois le travail fait et vérifié.

Scripts find + rename

Installation

On installe les paquets rename et find :

D'abord mettre à jour ses paquets, voir les outils apt pour plus d'explications

apt update && apt full-upgrade

Et installer les 2 bouzins :

apt install rename find
Documentation find : dans le tuto find.

Exécution

(Ce titre n'est pas un vain mot, ici…) :-D

Suite à un repositionnement de plusieurs listes de films il me faut renommer les titres en supprimant tous les aspects purement littéraux qui falsifieraient le résultat des commandes que j'utilise pour la gestion informatique de l'ensemble de la cinémathèque.

Espaces apostrophe et tiret

  1. Nous utiliserons ici le nom “b l'a” pour l'exemple. - Dans /b l'a/ - remplacer les espaces par un underscore (ou Tirets bas en fr) : “ _ ” et les apostrophes “ ' ” par un petit tiret “ - ”.
    1. Exemple :
      find /b l'a/ -depth -execdir rename "y/'/_-/" "{}" \;

      Donnera : b_l-a

  2. Nous utiliserons ici le nom “bl(a)” pour l'exemple. - Supprimer les parenthèses dans /b(la)/, ses sous-répertoires et celui des fichiers contenus :
    find /b(la)/ -depth -execdir rename "s/[\)\(]//g" "{}" \;

    Donnera : bla.

  3. Mettre en majuscule la première lettre des dossiers d'un répertoire nommé /bla/, de tous ses sous-répertoires et des fichiers contenus :
    find /bla/ -depth -execdir rename "s/^\.\/(.)/.\/\U\$1/" "{}" \;

    Donnera : Bla

Combinaison de ces 3 codes :

  1. Nous utiliserons le nom “b l'(a)” pour l'exemple.
    find /b (la)/ -depth -execdir rename "y/ '/_-/;s/[\)\(]//g;s/^\.\/(.)/.\/\U\$1/" "{}" \;

    Donnera B_l-a

utilisateurs/smolski/tutos/script-renames.1600508639.txt.gz · Dernière modification: 19/09/2020 11:43 par smolski

Pied de page des forums

Propulsé par FluxBB