0 votes

Renommer un tas de fichiers dans debian

J'ai des milliers de fichiers que je dois renommer avec le format suivant. 2008:09:18:17:45:48-alfanumeric-alfanumeric.wav la première partie est une date.

Ex. 2008:09:18:17:45:48-703-s.wav

Je veux le renommer en :

20080918.174548.703.s.wav

Il s'agit essentiellement de supprimer les " :" et d'obtenir un format plus lisible pour l'homme et plus facile à diviser.

Je sais que le renommage est ce que je recherche, mais l'expression rationnelle ne fonctionne pas. Je tape :

renommer 's/( \d )\ :( \d )\ :( \d )\ :( \d )\ :( \d )\ :( \d )-(. ?)-(. ?).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*

2voto

Tim Pietzcker Points 146308
rename 's/(\d+):(\d+):(\d+):(\d+):(\d+):(\d+)-([^-]+)-([^.]+).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*

devrait être utilisé - dans votre version, vous ne faites toujours correspondre qu'un seul chiffre. De plus, il n'est pas nécessaire d'échapper le :.

1voto

Martin v. Löwis Points 61768

Vous devez tenir compte des multiplicités :

rename 's/(\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)-(.*)-(.?).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*

1voto

Berry Points 629

Si c'est quelque chose que vous ne ferez qu'une fois, je le ferais de cette façon :

1) ls les fichiers dans un nouveau fichier : ls datadir > mytmp 2) éditez le mytmp avec votre éditeur préféré. 2a supprimez toutes les lignes qui ne sont pas des fichiers de données dont vous vous souciez, comme "." et " ". 2b éditez chaque ligne en une commande shell pour renommer le fichier. J'aime emacs, et je construirais une macro clavier pour : couper le nom du fichier, insérer "mv ", insérer la commande insérer le nom de fichier, insérer un espace, insérer à nouveau le nom de fichier, éditer le nom de fichier inséré en le format souhaité. 2c enregistrer 3) exécuter sh < mytmp

C'est fait ! Pas élégant, fastidieux si votre éditeur ne prend pas en charge les macros ou des fonctionnalités similaires, mais garantie de fonctionner et git-er-done.

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