Un petit script...

Le
dominique
Bonjour,
Les boucles for ne me posent pas de problèmes particuliers tout comme
l'instruction do/done.
Mais il me faut confesser un gros coup de fainéantise.
Je viens d'encoder en Ogg Vorbis un CD de Léonard Cohen.
Il se présente comme suit :
-rw-rw-r-- 1 normal normal 5515742 avr 26 12:49 Leonard_Cohen - 01 -
The_Future.ogg
-rw-rw-r-- 1 normal normal 6147870 avr 26 12:50 Leonard_Cohen - 02 -
Waiting_for_the_Miracle.ogg
-rw-rw-r-- 1 normal normal 3634307 avr 26 12:51 Leonard_Cohen - 03 -
Be_for_Real.ogg
-rw-rw-r-- 1 normal normal 4973878 avr 26 12:52 Leonard_Cohen - 04 -
Closing_Time.ogg
-rw-rw-r-- 1 normal normal 4898293 avr 26 12:53 Leonard_Cohen - 05 -
Anthem.ogg
-rw-rw-r-- 1 normal normal 5849653 avr 26 12:54 Leonard_Cohen - 06 -
Democracy.ogg
-rw-rw-r-- 1 normal normal 5885643 avr 26 12:54 Leonard_Cohen - 07 -
Light_as_the_Breeze.ogg
-rw-rw-r-- 1 normal normal 6479583 avr 26 12:55 Leonard_Cohen - 08 -
Always.ogg
-rw-rw-r-- 1 normal normal 4626715 avr 26 12:56 Leonard_Cohen - 09 -
Tacoma_Trailer.ogg

Avec mv, je pourrais renommer chaque fichier et ne conserver que le
titre de la chanson.
C'est fastidieux.
Quel script pourriez-vous me proposer pour retirer automatiquement les
20 premiers caractères de chaque fichier ?
Et même si vous ne me donnez pas le script, peut-être pouvez-vouus
m'indiquer la piste à explorer.
Ce serait finalement peut-être mieux.
Merci et bon après-midi,
Dominique
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #1889566
dominique :

Il se présente comme suit :
-rw-rw-r-- 1 normal normal 5515742 avr 26 12:49 Leonard_Cohen - 01 - The_Future.ogg
[snip]

Avec mv, je pourrais renommer chaque fichier et ne conserver que le
titre de la chanson.
C'est fastidieux.


for f in *; do mv "$f" "${f#*-*- }"; done

Le « ${f#*-*- } » signifie « expanser la variable f en retirant son plus
court préfixe matché par le motif « *-*-  » ». Si tu voulais 20 caractères,
tu peux mettre à la place le motif « ???????????????????? ».

Matthieu Moy
Le #1884676
(Luc Habert) writes:

dominique :

Il se présente comme suit :
-rw-rw-r-- 1 normal normal 5515742 avr 26 12:49 Leonard_Cohen - 01 - The_Future.ogg
[snip]

Avec mv, je pourrais renommer chaque fichier et ne conserver que le
titre de la chanson.
C'est fastidieux.


for f in *; do mv "$f" "${f#*-*- }"; done

Le « ${f#*-*- } » signifie « expanser la variable f en retirant son plus
court préfixe matché par le motif « *-*-  » ». Si tu voulais 20 caractères,
tu peux mettre à la place le motif « ???????????????????? ».


Sinon, voir la commande « rename » fournie avec perl.

$ rename 's/^[^-]*-[^-]*- (.*)$/$1/' *.ogg

(non testé)

--
Matthieu


Cumbalero
Le #1884675

Quel script pourriez-vous me proposer pour retirer automatiquement les
20 premiers caractères de chaque fichier ?


Même pas besoin d'un script, la commande rename peut faire ça.

A+
JF

Sebastien Doucet
Le #1884673
for f in `ls -1`; do mv $f ${f##*-} ; done

le double # servant à retirer le plus long préfixe

seb

On 2007-04-26, Matthieu Moy
(Luc Habert) writes:

dominique :

Il se présente comme suit :
-rw-rw-r-- 1 normal normal 5515742 avr 26 12:49 Leonard_Cohen - 01 - The_Future.ogg
[snip]

Avec mv, je pourrais renommer chaque fichier et ne conserver que le
titre de la chanson.
C'est fastidieux.


for f in *; do mv "$f" "${f#*-*- }"; done

Le « ${f#*-*- } » signifie « expanser la variable f en retirant son plus
court préfixe matché par le motif « *-*-  » ». Si tu voulais 20 caractères,
tu peux mettre à la place le motif « ???????????????????? ».


Sinon, voir la commande « rename » fournie avec perl.

$ rename 's/^[^-]*-[^-]*- (.*)$/$1/' *.ogg

(non testé)





Luc.Habert.00__arjf
Le #1884672
Sebastien Doucet :

for f in `ls -1`; do mv $f ${f##*-} ; done


AAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRRRGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHH!!!

Dis, tu as vu qu'il y a des espaces dans ses noms de fichiers? J'ai donné un
truc à base de « ${#} » qui n'est pas vulnérable aux caractères bizarres,
pourquoi te sens tu obligé de reposter la même chose en tout cassé?

Nicolas George
Le #1884671
Luc Habert wrote in message
Dis, tu as vu qu'il y a des espaces dans ses noms de fichiers? J'ai donné un
truc à base de « ${#} » qui n'est pas vulnérable aux caractères bizarres,
pourquoi te sens tu obligé de reposter la même chose en tout cassé?


Je pense que le but est de démontrer la nocivité d'un
fr.comp.os.linux.debutants.

dominique
Le #1884670
dominique :

Il se présente comme suit :
-rw-rw-r-- 1 normal normal 5515742 avr 26 12:49 Leonard_Cohen - 01 - The_Future.ogg
[snip]

Avec mv, je pourrais renommer chaque fichier et ne conserver que le
titre de la chanson.
C'est fastidieux.


for f in *; do mv "$f" "${f#*-*- }"; done

Le « ${f#*-*- } » signifie « expanser la variable f en retirant son plus
court préfixe matché par le motif « *-*- » ». Si tu voulais 20 caractères,
tu peux mettre à la place le motif « ???????????????????? ».


Ça marche très bien. Merci.
Il va me rester maintenant à comprendre le fonctionnement de ce petit
script.
Bonne soirée,
Dominique


Zeyes
Le #1884630
Luc Habert wrote in message
Dis, tu as vu qu'il y a des espaces dans ses noms de fichiers? J'ai donné un
truc à base de « ${#} » qui n'est pas vulnérable aux caractères bizarres,
pourquoi te sens tu obligé de reposter la même chose en tout cassé?


Je pense que le but est de démontrer la nocivité d'un
fr.comp.os.linux.debutants.
Ca c'est malin: c'est pour ne pas t'ennuyer, toi, avec des questions de

debutants que je proposais ca.......
Apres tout, parfois, c'est en faisant des betises que l'on apprend!
C'est sur qu'avec des reponses de debutants ca aurait demande 20
posts.... mais c'est pas grave, si?


Doug713705
Le #1884625
Le jeudi 26 avril 2007 19:19, Zeyes s'est exprimé de la sorte sur
fr.comp.os.linux.configuration :

Ca c'est malin: c'est pour ne pas t'ennuyer, toi, avec des questions de
debutants que je proposais ca.......
Apres tout, parfois, c'est en faisant des betises que l'on apprend!
C'est sur qu'avec des reponses de debutants ca aurait demande 20
posts.... mais c'est pas grave, si?


En exemple ALC :

Si la question est "Je suis root sur la machine et je veux effacer tous les
fichiers et répertoires du répertoire courant. Comment faire ?" un débutant
répond :
# rm -R /
au lieu de
# rm -R ./ (en emettant les reserves nécessaires sur l'attention à apporter
quant à l'endroit où on se trouve au moment de taper cette commande)...

Je te laisse seul juge de la gravité d'une telle situation.

--
@+
Doug - Linux user #307925 - Gentoo rocks ;-)
Faites comme ptilou, destructurez vos textes :
http://doug.letough.free.fr/ptiloutron/

Luc.Habert.00__arjf
Le #1884588
R12y :

C'est vrai que je viens de boire un peu


Ce qui t'a fait rater cette phrase :

Dis, tu as vu qu'il y a des espaces dans ses noms de fichiers?


dans mon texte, apparament.

Publicité
Poster une réponse
Anonyme