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 28/04/2011, à 10:07

Ouways

Renomage groupé. [Résolu]

Bonjour,

Dans un dossier quelconque, j'ai un nombre considérable de dossier dont leur nom se termine par " - 1998".
Idéalement, j'aimerais supprimer cette mention par le biais de la console afin que je n'ai pas à les retirés manuellement.

Dans l'attente de vos réponses, bonne journée !

إوَيْ

Dernière modification par Ouways (Le 28/04/2011, à 15:59)

Hors ligne

#2 Le 28/04/2011, à 10:08

J5012

Re : Renomage groupé. [Résolu]

pkoi se tracasser avec la console ? utilise krename...

Hors ligne

#3 Le 28/04/2011, à 10:17

Ouways

Re : Renomage groupé. [Résolu]

Merci de ton aide J5012.

Je n'avais pas connaissance de cet utilitaire. Est-il compatible avec une interface Gnome ?

إوَيْس

Hors ligne

#4 Le 28/04/2011, à 10:34

emi_lien

Re : Renomage groupé. [Résolu]

Pyrenamer : je l'utilise sur mon ubuntu (gnome) et c'est parfait !
J'aime le fait qu'il aille piocher dans les données exif de mes photos pour récupérer les infos et renommer facilement mes photos cool

Hors ligne

#5 Le 28/04/2011, à 10:37

Ouways

Re : Renomage groupé. [Résolu]

Merci de votre aide.

Je vais de ce pas tester ces applications.

إوَيْس

Edit : Concernant Pyrenamer, il ne renomme pas en masse les dossiers. C'est valable uniquement pour les fichiers.

Dernière modification par Ouways (Le 28/04/2011, à 10:40)

Hors ligne

#6 Le 28/04/2011, à 10:44

Ouways

Re : Renomage groupé. [Résolu]

Après avoir tester ces utilitaires, je me rend compte qu'ils ne renomme que des fichiers et non des dossiers.

Quelqu'un aurais une solution à me proposer ?

إوَيْس

Hors ligne

#7 Le 28/04/2011, à 11:29

Sciensous

Re : Renomage groupé. [Résolu]

une fois dans le dossier, en ligne de commande:

for a in `ls`; do if [ -d "$a" ]; then mv "$a" ${a%%-1998}; fi;  done

antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#8 Le 28/04/2011, à 12:37

Ouways

Re : Renomage groupé. [Résolu]

Sciensous,

Merci de ton intervention. Pour tester cette commande (avant de l'appliquer là où j'en ai besoin), j'ai créer dossier quelconque.
Dans ce dossier j'ai créer 3 dossier : "fad", "gfsda - 1998" et "trew - 1998". Après avoir appliqué la commande que tu m'as proposé, il m'a été retourné une erreur :

mv: ne peut déplacer `fad' vers un sous-répertoire de lui-même `fad/fad'

Et les deux autres dossiers n'ont pas été renommés.

إوَيْس

Hors ligne

#9 Le 28/04/2011, à 12:51

Sciensous

Re : Renomage groupé. [Résolu]

l'erreur est normale: il renomme un dossier en son meme nom, ce qui pose probleme pour le shell mais pas sur le resultat (ce n'est pas très propre mais l'erreur est ignorée ensuite)

ça ne marche pas car je n'ai pas mis d'espace, il faut les rajouter:

edit2: voilu

ls | while read a; do if [ -d "$a" ]; then echo "$a"; b=${a%% - 1998}; if [ "$b" != "$a" ]; then mv "$a" "$b";fi; fi;  done;

Dernière modification par Sciensous (Le 28/04/2011, à 13:04)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#10 Le 28/04/2011, à 13:04

twocats

Re : Renomage groupé. [Résolu]

for a in *-\ 1998; do if [ -d "$a" ]; then mv "$a" "${a%%\ -\ 1998}"; fi;  done

La réponse est 42

Hors ligne

#11 Le 28/04/2011, à 13:23

AnsuzPeorth

Re : Renomage groupé. [Résolu]

Bjr,
Pourquoi pas utiliser rename qui est prévu pour ça ? Couplé avec find.

find '/home/user/dossier' -type d -name *1998 -exec rename -n 's/ - 1998//' {} \;

Enlever l'option -n de rename pour renommer les fichiers, en l'état juste le résultat est sortie en console.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#12 Le 28/04/2011, à 13:31

Ouways

Re : Renomage groupé. [Résolu]

Tip top ça marche !

Merci à vous pour vos réponses. Bonne continuation !

إوَيْس

Hors ligne

#13 Le 28/04/2011, à 14:43

Sciensous

Re : Renomage groupé. [Résolu]

@AnsuzPeorth: oui tu as raison !!!
Faut dire que je ne suis pas du tout habitué à Perl, mais plutot aux scripts tongue

Dernière modification par Sciensous (Le 28/04/2011, à 22:42)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#14 Le 28/04/2011, à 16:20

wsc

Re : Renomage groupé. [Résolu]

Sciensous a écrit :

@AnsuzPeorth: oui tu as raison !!!
Faut dire que je ne suis pas du tout habitué à Perl, mais plutot aux scripts tongue

[HS]
Bein votre solution semble pas mal non plus puisqu'elle fonctionne avec coreutils (ls et mv), tandis que celle d' AnsuzPeorth est limité à debian et distributions dérivés.
Après c'est vrai qu'on est sur un forum ubuntu.

Mais je me permet cette intervention car rename peut prêter à confusion, "le vrai rename" est l'équivalent de mv et la version rename de perl utilise les regexp ainsi que pas mal d'options.
Sous une Arch Linux par exemple, le rename est bien celui du coreutils, et si on installe le rename de chez perl via le gestionnaire de paquets, on garde rename (du coreutils) et on dispose du binaire perl-rename en plus (ce qui semble logique d'ailleurs).

Avec la version d'AnsuzPeorth sur une Arch installé par défaut il faut donc installer: findutils, perl + perl-rename puis modifier la commande (rename vers perl-rename)

Voila, cette réponse pour ceux qui se demanderaient pourquoi rename sur debian parait beaucoup "mieux||complet" que sur d'autres distributions...

Ce qui veut aussi dire qu'un script avec rename n'est pas forcément portable entre diverses distributions
[/HS]

Dernière modification par wsc (Le 28/04/2011, à 16:25)


#!/bin/crash
SYS="Arch Linux avec FVWM Crystal"
echo -e "\nMon site internet et le weB-log ... \nMon système: $SYS \n\n"
sleep 2 && exit 0

Hors ligne

#15 Le 28/04/2011, à 16:53

FRUiT

Re : Renomage groupé. [Résolu]

AnsuzPeorth a écrit :

Bjr,
Pourquoi pas utiliser rename qui est prévu pour ça ? Couplé avec find.

find '/home/user/dossier' -type d -name *1998 -exec rename -n 's/ - 1998//' {} \;

Enlever l'option -n de rename pour renommer les fichiers, en l'état juste le résultat est sortie en console.


Hummmmmmmmm... Un beau useless use of find ^^

rename -n 's/ - 1998//' *" - 1998"/

Dernière modification par FRUiT (Le 28/04/2011, à 16:54)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#16 Le 28/04/2011, à 17:20

AnsuzPeorth

Re : Renomage groupé. [Résolu]

wsc a écrit :

Ce qui veut aussi dire qu'un script avec rename n'est pas forcément portable entre diverses distributions

C'est tjrs bien à savoir... Je vais finir pas ne faire que du sh (euhh, dash même !), au moins, ce sera portable wink

FRUiT a écrit :

Hummmmmmmmm... Un beau useless use of find ^^

Mon premier big_smile
Tu aurais au moins pu mettre une image, comme le faisait sputnick !

Sinon, find est récursif, pas ce que tu proposes smile

Vi je sais, l'expension de noms bash > 4 permet la récursivité.

Mais j'y ai pas pensé à vrai dire ... Mauvaises habitudes/reflexes !


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#17 Le 28/04/2011, à 17:40

FRUiT

Re : Renomage groupé. [Résolu]

Je mets quand même le bash 4 récursif, pour les autres ^^ :

(shopt -s globstar ; rename -n 's/ - 1998//' **/*" - 1998"/)

Dernière modification par FRUiT (Le 28/04/2011, à 17:42)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#18 Le 28/04/2011, à 17:45

Woodstocker

Re : Renomage groupé. [Résolu]

Merci à l'initiateur de ce sujet, il m'a permis de décourir krename, qui correspond exactement à ce que je cherchais smile



wsc a écrit :

Mais je me permet cette intervention car rename peut prêter à confusion, "le vrai rename" est l'équivalent de mv et la version rename de perl utilise les regexp ainsi que pas mal d'options.
Sous une Arch Linux par exemple, le rename est bien celui du coreutils, et si on installe le rename de chez perl via le gestionnaire de paquets, on garde rename (du coreutils) et on dispose du binaire perl-rename en plus (ce qui semble logique d'ailleurs).

J'aime ce genre de phrases : n'étant pas spécialiste, je ne risque pas d'en saisir le sens... mais j'admire ceux qui manipulent des notions ou des concepts incompréhensibles (pour moi) comme si c'était évident !


Overdose de Windows...
Administration du remède en cours : Lucid Lynx
En convalescence (pas booté sur Windows depuis un mois)
Vaccination de rappel : booté sur Windows après deux mois d'Ubuntu : 103 Mo de mises à jour d'antivirus, et il a perdu la souris...

Hors ligne