# Renommer des fichiers contenant \[ \] dans le nom

**URL:** <https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370>\
**Category:** Programmation\
**Created:** [Décembre 29, 2023, 4:28 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370 "2023-12-29T16:28:38Z")\
**Posts on this page:** 12\
**Page:** 2

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Janvier 1, 2024, 8:14 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/21 "2024-01-01T20:14:08Z")

</div>

> [@Zargos](#):
>
> rename ne permet pas d’utiliser des regexp

Il me semble que _rename_ est un script Perl qui _utilise les regex évolués de Perl_:

`rename 's/\[machin\]//' truc\[machin\].txt`

`rename 's/\[machin\]//' truc\[*\].txt`

fonctionnent chez moi

Ne pas oublier les «'» avant et après la commande de substitution, ni le «\» avant les crochets droits qui, sinon, sont un couple opérateur de regroupement de caractères.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 2, 2024, 9:00 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/22 "2024-01-02T09:00:39Z")

</div>

> [@josephtux](#):
>
> Il me semble que _rename_ est un script Perl qui _utilise les regex évolués de Perl_ :

le man n’est pas très explicite sur le sujet avec tout de même le fait qu’il soit lié à glibc.

---

<div class="post-metadata">

**Author:** ![yatta](https://www.debian-fr.org/user_avatar/www.debian-fr.org/yatta/32/12132_2.png) [@yatta](https://www.debian-fr.org/u/yatta)\
**Post date:** [Janvier 2, 2024, 3:43 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/23 "2024-01-02T15:43:14Z")

</div>

> [@Zargos](#):
>
> rename ne permet pas d’utiliser des regexp donc il faut scripter

> **[file-rename(1p) — rename — Debian bookworm — Debian Manpages](https://manpages.debian.org/bookworm/rename/file-rename.1p.en.html)**

> [@Verner](#):
>
> ‹ rename › non seulement est un paquet supplémentaire, mais dépend aussi du paquet **Perl**

je voudrais bien un sondage pour savoir qui a un OS sans Perl installé 😉  
sinon le paquet une fois installé pèse 61,0 ko, terrifiant

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Janvier 2, 2024, 4:35 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/24 "2024-01-02T16:35:46Z")

</div>

> [@Zargos](#):
>
> qu’il soit lié à glibc

le paquet deb ne dépend que de Perl:any (Perl étant toujours installé), je ne vois libc signalé ni dans la description du package ni dans le man qui précise bien que l’argument perlexpr est une expression Perl.

Parle-t-on vraiment de la même commande «rename» installé par le package du même nom ?

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 2, 2024, 6:06 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/25 "2024-01-02T18:06:12Z")

</div>

C’est ce qu’on obtient en faisant man rename.  
mais il y a rename.ul et puis si tu installes le paquedt rename tu installes une interface pour File::Rename.  
Sinon sans ça il y a la commande rename.ul qui vient de util-linux

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Janvier 2, 2024, 6:52 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/26 "2024-01-02T18:52:58Z")

</div>

> [@Zargos](#):
>
> C’est ce qu’on obtient en faisant man rename

Oui, si on n’a pas installé _le paquet rename_, script Perl. (je viens de le supprimer et man rename affiche bien alors la page de cette fonction de Libc à laquelle vous vous référez).

Conclusion: pour utiliser « rename PerlRegex _fichiers_», très confortable, il faut _installer le package rename_ de Debian.  
Cette commande bénéficie d’une option -n qui permet de voir, par sécurité, ce qui va être fait, sans rien modifier.  
Je m’en sers presque quotidiennement depuis des années.  
Il existe aussi «detox» pour supprimer les caractères bizarres et les espaces dans les noms de fichier.

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Janvier 2, 2024, 10:53 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/27 "2024-01-02T22:53:58Z")

</div>

> [@Verner](#):
>
> bash → **globbing**  
> `"${x/\[*\]/}"`

le x dans le code est bien le x de for x in \*mp4 ?

---

<div class="post-metadata">

**Author:** ![MPython\_Alaplancha](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mpython_alaplancha/32/14038_2.png) [@MPython\_Alaplancha](https://www.debian-fr.org/u/MPython_Alaplancha)\
**Post date:** [Janvier 3, 2024, 6:59 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/28 "2024-01-03T06:59:55Z")

</div>

C’est le nom de la variable. Exemple de substitution simple où l’on change ‹&nbsp;X&nbsp;› en ‹&nbsp;e&nbsp;› :

```
fab@fabien:~$ variable="azXrty"
fab@fabien:~$ echo "${variable/X/e}"
azerty
fab@fabien:~$
```

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Janvier 3, 2024, 2:27 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/29 "2024-01-03T14:27:15Z")

</div>

c’est bien ça , merci.

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Janvier 6, 2024, 1:15 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/30 "2024-01-06T13:15:12Z")

</div>

> [@dindoun](#):
>
> le x de for x in \*mp4

L’avantage du script Perl _rename_ est de se passer de la boucle for, puisqu’il s’applique à une liste, comme « \*.mp4 », et de bénéficier du confort et de la précision des regex de Perl, par exemple éviter le syndrome des barres-obliques.

> **[perlfaq6 - Regular Expressions - Perldoc Browser](https://perldoc.perl.org/perlfaq6)**

---

<div class="post-metadata">

**Author:** ![MPython\_Alaplancha](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mpython_alaplancha/32/14038_2.png) [@MPython\_Alaplancha](https://www.debian-fr.org/u/MPython_Alaplancha)\
**Post date:** [Janvier 6, 2024, 2:12 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/31 "2024-01-06T14:12:15Z")

</div>

Pour ceux qui ne connaissent pas, vous pouvez essayer votre expression rationnelle PCRE (Perl Compatible Regular Expressions, comme celles utilisées par la cmd **rename** , **grep -P** ou avec le module Re de python) sur le site regex101 [regex101: build, test, and debug regex](https://regex101.com/r/bGeDrR/1) .

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Janvier 14, 2024, 3:57 UTC](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370/32 "2024-01-14T15:57:53Z")

</div>

> [@josephtux](#):
>
> le syndrome des barres-obliques.

on ne le sait souvent pas , mais avec sed on peut utiliser à peu près n’importe quel symbol à la place des / , j’utilise presque toujours #, ce qui donne par exemple `sed 's#machin#truc#'`

[Page précédente](https://www.debian-fr.org/t/renommer-des-fichiers-contenant-dans-le-nom/89370.md?page=1)
