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 09/07/2009, à 10:39

Erlen

Renommer plusieurs fichiers

Bonjour,

J'effectue des calculs sur un calculateur qui me sort mes résultats sous la forme nom de l'input.out.nom de machine.un numéro.

Je voulais savoir si vous connaissiez une commande pour renommer plusieurs fichiers en même temps pour éviter une fastidieux mv. Et donc dans le cas présent une commande qui supprime de façon systématique une partie du nom.

Merci

Dernière modification par Erlen (Le 09/07/2009, à 10:39)


Ubuntu 12.04 intel i5-2450m/intel HD graphic family/ Radeon HD 7470m

Hors ligne

#2 Le 09/07/2009, à 11:15

Geoffrey35

Re : Renommer plusieurs fichiers

Erlen a écrit :

nom de l'input.out.nom de machine.un numéro.

Tu peux être plus clair please, je pige pas...

Dernière modification par Geoffrey35 (Le 09/07/2009, à 11:15)


Ubuntu, c'est pas non plus...

Hors ligne

#3 Le 09/07/2009, à 11:32

Erlen

Re : Renommer plusieurs fichiers

Alors exemple
le job s'appelle toto.inp
la machine me sort un output qui s'appelle
toto.out.machine.123456 (le chiffre n'étant bien évidement jamais le même)
toto2.out.machine.123457
toto3.out.machine.123458
et je voudrais avec une seule commande faire le changement pour arriver à
toto1.out
toto2.out
toto3.out
C'est plus clair ?


Ubuntu 12.04 intel i5-2450m/intel HD graphic family/ Radeon HD 7470m

Hors ligne

#4 Le 09/07/2009, à 12:15

phenix88be

Re : Renommer plusieurs fichiers

Regarde du coté de métamorphose, c'est un logiciel qui renomme des fichier a la volé.

Je l'utilise pour renommer mes photo, sa marche très bien wink

http://doc.ubuntu-fr.org/metamorphose

Hors ligne

#5 Le 09/07/2009, à 12:15

cap ou pas cap

Re : Renommer plusieurs fichiers

bonjour,

purrr est un logiciel qui permet de renommer en masse :

http://doc.ubuntu-fr.org/purrr

#6 Le 09/07/2009, à 12:37

compte supprimé

Re : Renommer plusieurs fichiers

Oui purr + nautilus-script.

Créé un fichier exécutable nommé "Rename (purr)" dans ~/.gnome2/nautilus-scripts/ avec le code suivant :

#!/bin/bash
purrr -s -u $NAUTILUS_SCRIPT_SELECTED_URIS

Après un reboot, dans nautilus, sélectionne les fichiers à renommer, clic de droit Scripts->Rename (purr).

commandes :

[b]  : récupère la base du nom du fichier (ce qui est avant l'extension)
[E]  : l'extension (après le (premier) point donc)
[c]  : un compteur de 1 à n

Dans ton cas ça devrait être de la forme :

toto[c].out

De toute façon tu vois le nom résultant dans le panneau de droite.

#7 Le 09/07/2009, à 12:46

vince06fr

Re : Renommer plusieurs fichiers

il existe également gprename et pyrenamer

Hors ligne

#8 Le 09/07/2009, à 12:53

Geoffrey35

Re : Renommer plusieurs fichiers

j=0
for i in *machine*
do
j=$((j+1))
mv $i toto$j.out
echo "Geoffrey35 est trop fort"
done

Donnez les droit d'exécution au préalable, bla bla

Dernière modification par Geoffrey35 (Le 09/07/2009, à 13:07)


Ubuntu, c'est pas non plus...

Hors ligne

#9 Le 09/07/2009, à 18:48

Erlen

Re : Renommer plusieurs fichiers

Merci pour toutes ces réponses.


Ubuntu 12.04 intel i5-2450m/intel HD graphic family/ Radeon HD 7470m

Hors ligne

#10 Le 09/07/2009, à 20:07

guigolum

Re : Renommer plusieurs fichiers

+1pour geoffrey,  avec quelques modifs:

OLDIFS="$IFS"; IFS=$'\n';
for fich in *out*; do
name=$(echo $fiche | sed "s/\.[^.]*\.[^.]*$//g");
if test "$fich" != $name; then echo "$fich -> $name"; mv "$fich" "$name"; fi
done;
IFS="$OLDIFS"

la sauvegarde puis modification de l'IFS c'est pour éviter les problèmes avec les espaces dans les noms.
la partie avec sed va juste virer ce qu'il y a à partir du deuxième point en partant de la fin.
le if c'est juste qu'on veut pas déplacer un fichier vers lui même.
teste le avant, en commentant la partie mv "$fich" "$name".

Hors ligne

#11 Le 09/07/2009, à 20:13

Geoffrey35

Re : Renommer plusieurs fichiers

guigolum a écrit :

OLDIFS="$IFS"; IFS=$'\n';
for fich in *out*; do
name=$(echo $fiche | sed "s/\.[^.]*\.[^.]*$//g");
if test "$fich" != $name; then echo "$fich -> $name"; mv "$fich" "$name"; fi
done;
IFS="$OLDIFS"

Waw, ça pique.


Ubuntu, c'est pas non plus...

Hors ligne

#12 Le 09/07/2009, à 20:49

Totor

Re : Renommer plusieurs fichiers

Bonsoir,

ou tout simplement la commande rename ... roll
qui évite tout installation de tiers outils ... et qui est capable, en une seule ligne, de renommer en masse (pas de boucle)...
Mais pour cela, il faut le motif de départ (que l'on a) et la règle de renommage à effectuer (c'est ce qui nous manque !).

Dernière modification par Totor (Le 09/07/2009, à 20:49)


-- Lucid Lynx --

Hors ligne