Comment renommer l’ensemble de fichiers avec motif

J’ai des fichiers dont le nom est le suivant:

P50_FR_8_q2_scrolls.csv

Ici, les valeurs 50 et 8 doivent être renommées et les résultats devraient ressembler à ceci:

P21_FR_3_q2_scrolls.csv

J’en ai fatigué peu rename 's/\d{3}(\d{*})\.csv$P21_$1.csv' *.csv semblables pour rename 's/\d{3}(\d{*})\.csv$P21_$1.csv' *.csv Mais sans chance. (Il semble que je suis vraiment mauvais en regex Linux)

La valeur 50-> 21 et 8-> 3 est quelque chose que je connais. Mais la valeur initiale et la valeur finale ne sont pas toujours de la même taille.

Essayer

 rename -n 's/50(_.*)_8/21$1_3/' *.csv 

Le drapeau -n ne renomme pas. Vous pouvez tester les motifs de cette façon. Supprimez-le pour effectuer le renommage.