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.

#1 Le 25/01/2006, à 20:55

severino

Renommer une liste de fichiers en une ligne

J'ai des fichiers comme ça :
potes04x01.celuila.sharepointcom.avi
potes04x02.celuici.sharepointcom.avi
...
potes04x24.celuiki.sharepointcom.avi
et je voudrais bien me débarasser du "sharepointcom" sans avoir à renommer mes fichiers 1 par 1...
Comme je ne sais pas comment faire, je revise un peu mon BASH :

for i in *.avi; do echo $i; done

Pour lister tous les fichiers .avi de mon répertoire


i=abc; j=ab; mv $i $j

Pour renommer le fichier "abc" en "ab"


echo "abc" | sed "s/abc/ab/"

On remplace "abc" par "ab"


for i in *.avi; do j=`echo $i | sed "s/sharepointcom.//"`; mv $i $j; done

Ça marche, ouf !

Vérifiez que la ligne fonctionne avec un "echo" avant d'utiliser le "mv". Sinon vous risquez de renommer tout vos fichiers vers une seul fichier "0". Autrement dit de les perdre (j'ai testé, snif hmm)

Dernière modification par severino (Le 25/01/2006, à 20:56)

Hors ligne

#2 Le 26/01/2006, à 01:06

asher256

Re : Renommer une liste de fichiers en une ligne

Il y a un programme très simple pour renommer les fichiers: rename

Je te le fais découvrir car cela pourrait un jour ou l'autre être utile. De plus, le programme rename a l'avantage de permettre l'utilisation des expressions régulières de perl (qui sont, soi-dit en passant, très puissantes).

Par exemple, pour renommer tous les fichiers .php en .htm: rename 's/\.php$/.htm/' *.php

Je t'invite à faire un petit man rename pour plus d'informations wink

Dernière modification par asher256 (Le 26/01/2006, à 01:12)


Blog dédié à Linux : http://blog.asher256.com

Hors ligne

#3 Le 26/01/2006, à 14:58

severino

Re : Renommer une liste de fichiers en une ligne

rename 's/\.sharepointcom//' *.avi

Excellent, merci !

Explication pour les encore plus nouveaux que moi :

rename *.avi signifie qu'on renomme tous les fichiers du répertoire courant se terminant par .avi

s/sharepointcom// signifie que l'on remplace la partie "sharepointcom" par un vide.

Le \. indique juste un point classique, mais sans le \ il aurait ici une signification particulière.

Hors ligne

#4 Le 30/09/2008, à 18:02

dimitri69002

Re : Renommer une liste de fichiers en une ligne

donc si g bien comprit je peut faire ce ceci:
bidule1.flv=bidule1.mp4?

car g un dossier qui est pleint de flv que je ne peut lire,je veut donc les renomer en bidule1.mp4

Hors ligne

#5 Le 30/09/2008, à 23:15

ljere

Re : Renommer une liste de fichiers en une ligne

bonjour
je pense que tu devrai utilisé mencoder http://doc.ubuntu-fr.org/mencoder
pour ce genre de chose et la conversation date de 2006 je doute qu'ils te repondent.


ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne