Je l'utilise renametout le temps. C'est assez simple, mais j'espère que vous connaissez la regex de base:
rename "s/SEARCH/REPLACE/g" *
Cela remplacera la chaîne SEARCHpar REPLACEdans chaque fichier (c'est-à-dire, *). Le /gmoyen global, donc si vous aviez un SEARCH_SEARCH.jpg, il serait renommé REPLACE_REPLACE.jpg. Si vous ne l'aviez pas fait /g, cela n'aurait fait qu'une fois la substitution, et donc maintenant nommée REPLACE_SEARCH.jpg. Si vous voulez /ine pas tenir compte de la casse, ajoutez (ce serait le cas /giou /igà la fin).
Avec les expressions régulières, vous pouvez faire beaucoup plus.
Notez qu'il renames'agit de la commande prename(également appelée Perl rename), qui prend en charge les expressions régulières complètes de Perl. Il y en a un autre renamequi utilise des modèles et qui n'est pas aussi puissant. prenameutilisé pour être installé par défaut sur Ubuntu (avec Perl), mais maintenant vous devrez peut-être faire:
sudo apt install rename
Voici quelques exemples:
Préfixe
Ajouter :
rename 's/^/MyPrefix_/' *
document.pdf renommé en MyPrefix_document.pdf
Supprimer :
Aussi, vous pouvez supprimer les chaînes indésirables. Supposons que vous ayez 20 fichiers MP3 nommés comme CD RIP 01 Song.mp3et que vous vouliez supprimer la partie "CD RIP", et que vous souhaitiez les supprimer avec une seule commande.
rename 's/^CD RIP //' *
CD RIP 01 Song.mp3 à 01 Song.mp3
Notez l’espace supplémentaire '^CD RIP ', sans l’espace, tous les fichiers auraient un espace comme premier caractère du fichier. Notez également que cela fonctionnera sans le ^caractère, mais correspondrait CD RIP à n'importe quelle partie du nom de fichier. La ^garantie ne supprime les caractères que s'ils sont au début du fichier.
Suffixe
Ajouter :
rename 's/$/_MySuffix/' *
document.pdf renommé en document.pdf_MySuffix
Changement :
rename 's/\.pdf$/.doc/' *
va changer Something.pdfen Something.doc. (La raison de la barre oblique inversée est, .est un caractère générique dans regexp donc .pdfcorrespond qPDFalors que \.pdfne correspond qu'à la chaîne exacte .pdf. Il est également très important de noter que si vous n'êtes pas familier avec BASH, vous devez mettre des barres obliques inverses entre guillemets SIMPLES! Vous ne pouvez pas omettre les guillemets ou utiliser des guillemets doubles ou bash essayera de les traduire. bash \. et "\." égaux .. (mais les guillemets doubles et anti - slash sont utilisés, par exemple « \ n » pour une nouvelle ligne, mais puisque "\."n'est pas une séquence d'échappement arrière valide, traduit en .)
En fait, vous pouvez même inclure les parties de la chaîne entre guillemets au lieu de la totalité: 's/Search/Replace/g'est identique à s/'Search'/'Replace'/get s/Search/Replace/gà BASH. Vous devez juste faire attention aux caractères spéciaux (et aux espaces).
Je suggère d'utiliser l' -noption lorsque vous n'êtes pas sûr d'avoir les expressions régulières correctes. Il montre ce qui serait renommé, puis quitte sans le faire. Par exemple:
rename -n s/'One'/'Two'/g *
Ceci listera tous les changements qu'il aurait apportés si vous n'aviez pas mis le -ndrapeau là-bas. Si le résultat est satisfaisant, appuyez sur Uppour revenir en arrière, puis effacez -net appuyez sur Enter(ou remplacez-le par -vpour afficher toutes les modifications apportées).
Remarque : les versions Ubuntu supérieures à 17.04 ne sont pas livrées avec les renamevaleurs par défaut. Cependant, elles sont toujours disponibles dans les dépôts. Utilisez sudo apt install renamepour l'installer