Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un petit script...

14 réponses
Avatar
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

10 réponses

1 2
Avatar
Luc.Habert.00__arjf
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 « ???????????????????? ».

Avatar
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é)

--
Matthieu


Avatar
Cumbalero

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

Avatar
Sebastien Doucet
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 wrote:
(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é)





Avatar
Luc.Habert.00__arjf
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é?

Avatar
Nicolas George
Luc Habert wrote in message <f0qiao$1p1l$:
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.

Avatar
dominique
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


Avatar
Zeyes
Luc Habert wrote in message <f0qiao$1p1l$:
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?


Avatar
Doug713705
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/

Avatar
Luc.Habert.00__arjf
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.

1 2