76 votes

Raccourci Shell/Bash pour le renommage en masse de fichiers dans un dossier

Existe-t-il un raccourci en Shell/Bash qui peut renommer tous les fichiers dans un dossier en fonction d'une expression régulière ou d'un autre critère. Ce que je cherche ici, c'est dans mon dossier de documents, qui contient disons 100 fichiers texte avec la convention de nommage suivante:

-doc-.txt.

J'ai besoin de renommer tous les fichiers avec la convention donnée ci-dessus en juste:

doc-.txt

Existe-t-il une seule commande qui peut m'aider avec ce qui précède?

5voto

Ahmed Points 11
mmv "*-doc-*" "doc-#2"

La commande mmv signifie "déplacement en masse"

3voto

Jahid Points 12756

Si vous n'êtes pas contre l'utilisation d'un outil externe, en voici un : rnm (page web)

Pour votre problème particulier, la commande serait :

rnm -rs '/.*-doc-/doc-/' *.txt

Ou

rnm -rs '/.*-(doc-.*\.txt)/\1/' *.txt

Vous pouvez trouver plus d'exemples/documentation ici.

0voto

john Points 280
find . -name '*scss' | xargs -L1 -I {} echo {} {} | sed 's/css\.scss$/scss/' | xargs -L1 mv

par exemple, si vous avez plusieurs fichiers se terminant par ".css.scss" et que vous souhaitez les renommer pour qu'ils se terminent simplement par ".scss" (c'est-à-dire supprimer la partie .css)

ajustez l'expression régulière et les arguments de recherche selon vos besoins

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X