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.

#51 Le 13/11/2022, à 16:18

Tawal

Re : [ resolu ] renommer fichiers comportant 4 chiffres consecutifs

Exact (qui en doutait tongue) !
Je suis allé un peu vite. Toutes mes excuses.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#52 Le 10/12/2022, à 10:35

iznobe

Re : [ resolu ] renommer fichiers comportant 4 chiffres consecutifs

Bonjour ,
J ' essaie desesperemment d' obtenir la commande parfaite roll
je comprends pourquoi ceci ne me laisse pas les fichiers comportant " 2022 " dans leur nom , renomme tout de même en " (2022) " :

find . -type f -regex ".*[^0-9][0-9][0-9][0-9][0-9]\([^0-9].*\|$\)"   -execdir rename -n "s/([0-9][0-9][0-9][0-9])/(\$1)/g;  s/\(\(([0-9][0-9][0-9][0-9])/\(\$1/g;  s/([0-9][0-9][0-9][0-9])\)\)/\$1\)/g;  s/\(([2][0][2][2])\)/(\$1)/g" "{}" \+

je pense que ca revient au meme que celle-ci d' ailleurs :

find . -type f -regex ".*[^0-9][0-9][0-9][0-9][0-9]\([^0-9].*\|$\)"   -execdir rename -n "s/([0-9][0-9][0-9][0-9])/(\$1)/g;  s/\(\(([0-9][0-9][0-9][0-9])/\(\$1/g;  s/([0-9][0-9][0-9][0-9])\)\)/\$1\)/g;  s/\((2022)\)/(\$1)/g" "{}" \+

j ' ai aussi essayer :

find . -type f -regex ".*[^0-9][0-9][0-9][0-9][0-9]\([^0-9].*\|$\)"   -execdir rename -n "s/([0-9][0-9][0-9][0-9])/(\$1)/g;  s/\(\(([0-9][0-9][0-9][0-9])/\(\$1/g;  s/([0-9][0-9][0-9][0-9])\)\)/\$1\)/g;  s/\((2022)\)/\$1/g" "{}" \+

mais le resultat est identique , : parentheses autour de 2022 : " (2022) " , alors que je voudrais tous renommer sauf 2022 .


EDIT : en faisant un mix avec la commande de depart ( #38 ) et la commande du #41 , ca fonctionne , mais j ' avoue qu ' une derniere chose m' echappe .

find . -type f -regex ".*[^0-9][0-9][0-9][0-9][0-9]\([^0-9].*\|$\)"   -execdir rename -n "s/([0-9][0-9][0-9][0-9])/(\$1)/g;  s/\(\(([0-9][0-9][0-9][0-9])/\(\$1/g;  s/([0-9][0-9][0-9][0-9])\)\)/\$1\)/g;  s/\((2022)\)/\$1/g" "{}" \+

Dernière modification par iznobe (Le 10/12/2022, à 10:57)


retour utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#53 Le 10/12/2022, à 11:13

Tawal

Re : [ resolu ] renommer fichiers comportant 4 chiffres consecutifs

Hello,

Pour t'aider à comprendre, dans rename :
   - (...) correspond à une sous-expression
   - \( et \) sont littéralement les caractères parenthèse ouvrante et parenthèse fermante.

Edit: c'est plus compliqué que ça :
Une commande de substitution de rename est de la forme :
s/expr1/expr2/
Ce que j'ai dit plus haut est vrai pour expr1
Mais ( et \( sont identiques dans expr2 (caractère littéral parenthèse ouvrante). Car expr2 n'est pas une regex mais une chaîne de remplacement.

Dernière modification par Tawal (Le 10/12/2022, à 11:25)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne