Page 1 sur 2
Publié : sam. 02 févr. 2008, 13:56
par mélodie
wain a écrit :(...)perl, python ou zsh. Si nous linuxiens acharnés ne promouvons pas la diversité, qui le fera ?
+1
Je ne connais toujours rien au shell, mais ne peux m'empêcher de voir que la commande zsh est ultra-courte (et compréhensible à mes yeux de néophyte) par rapport aux autres solutions proposées.
Vive la diversité !

Publié : sam. 02 févr. 2008, 14:27
par vincentxavier
djaac a écrit :bapt,
si je comprend bien ,
pour mon exemple, si je dois enommer ts le fichiers sa1 sa2 sa36, je tape :
zmv 'sa(*)' 'sa.2008_01_$1'
mais $1 correspond à quoi, peux tu me faire avec exemple concret stp.
merci
L'exemple nécessite d'utiliser zsh et la fonction zmv, qui ne sont ni POSIX, ni même dans les extensions GNU. Il s'agit là d'extensions propres à zsh.
Pour le commenter, disons que le (*) permet de stocker la partie située après 'sa' dans la variable $1. Par exemple,
permettrait de renommer les fichiers sa* en 200801* sa.
Il existe quantité de méthode pour faire ce que tu veux. Personnellement, je ferais
Code : Tout sélectionner
for i in sa* ; do mv $i `echo $i | sed -e 's/([0-9]*)/.2008_01_\1/' ` ; done ;
Publié : sam. 02 févr. 2008, 15:04
par Cactus
moi, je veux bien découvrir tout plein de solutions... mais à quoi bon se compliquer la tâche lorsqu'une commande simple existe déjà ?
Pourquoi ne pas réécrire dans ce cas toutes les commandes en script zsh ?
ok, je caricature, mais bon, j'avoue être surpris de la réaction de djaac... (et pas des autres pour les propositions zsh & co !)

Publié : sam. 02 févr. 2008, 15:17
par wain
vincentxavier a écrit :Il existe quantité de méthode pour faire ce que tu veux. Personnellement, je ferais
Code : Tout sélectionner
for i in sa* ; do mv $i `echo $i | sed -e 's/([0-9]*)/.2008_01_\1/' ` ; done ;
Si on se limite au shell par défaut présent dans Archlinux (bash), autant utiliser ses fonctions de substitution au lieu de faire appel à un xième outil externe (sed):
Publié : sam. 02 févr. 2008, 15:53
par vincentxavier
Le problème là est de pouvoir "catcher" une partie de l'expression régulière pour la réutiliser !
Publié : sam. 02 févr. 2008, 20:51
par wain
vincentxavier a écrit :Le problème là est de pouvoir "catcher" une partie de l'expression régulière pour la réutiliser !
Et tu sais pas le faire sans sed ?

Publié : sam. 02 févr. 2008, 23:50
par bapt
Je répond tardivement, mais l'intérêt de montrer la solution zsh est pour plusieurs raison :
1/ Pour informer les gens que l'on peut faire ce genre de choses sans problèmes et très simplement sous zsh.
2/Si des gens ont le même problème et sont utilisateurs de zsh, une recherche sur le forum les amènera sur certainement sur ce thread et ils auront leur réponse.
3/ Le libre propose plusieurs solution pour le même genre de choses, c'est bien de les présentées, de plus je n'ai présenté que zsh, mais aussi une solution graphique qui fait en gros la même choses avec le navigateur de fichier de xfce thunar.
4/ parce que faire du prosel zsh c'est seconde nature pour moi et que je ne peux pas m'en empêcher.
Publié : dim. 03 févr. 2008, 16:52
par warnaud
J'ai coupé la dérive dans la discussion

=>
http://forums.archlinux.fr/topic1407.html