[Linux-bruxelles] question de chemin...

Gildas Cotomale gildas.cotomale at gmail.com
Lun 10 Aou 11:33:04 CEST 2015


Le 8 août 2015 23:26, Aldo a écrit :
>
> Hello BxLUGois/LUGoises!
>
Hello

> aux Bashistes chevronnés, je voudrais demander comment il est possible de
> modifier l'indication du chemin dans une liste (ici playliste m3u) qu'on veut
> en fait recopier à un ou deux niveaux
> supérieurs; je m'explique:
>
> là où j'ai pour l'instant ~/MaZyc/Event/Lieu-et-date/00.m3u
> avec à l'intérieur du m3u
>  mm-nn.ogg
>  oo-pp.ogg
>  qq-rr.ogg
> etc...
> j'aimerais pouvoir copier 00.m3u vers ~/MaZyc/
> et lui donner le nom de Event-Lieu-et-date.m3u, mais du coup il faut que le
> contenu ressemble à ceci:
>  Event/Lieu-et-date/mm-nn.ogg
>  Event/Lieu-et-date/oo-pp.ogg
>  Event/Lieu-et-date/qq-rr.ogg
>
> Et j'ai pas trop envie de faire ça à la main vu que la playliste est/était
> plutôt longue:
> es-ce possible de modifier 00.m3u en recopiant tout son contenu, mais en
> ajoutant devant chaque artiste-titre.mp3 ou ogg le chemin du répo
> Artiste/Album/
> ici Evenement/Lieu-et-date/ ? (genre St-Valentin/Nevele_2011/) ?
>
Dans ta description, tu veux rajouter "Event/Lieu-et-date/" au début
de chaque ligne (chaque ligne contient le un non/chemin de fichier de
ton répertoire) :

sed -e 's#^#Event/Lieu-et-date/#' 00.m3u

Dans ton script, quelque chose comme (pas testé) :

sed -e "s/^/$prefix/" $file
mv $file ~/MaZyc/$prefix.m3u


Le même cède en perle ressemblerait à :

perl -p -i -e's#^#Event/Lieu-et-date' 00.m3u

ou

perl -p -i -e'$_ = "Event/Lieu-et-date/$_"' 00.m3u


Une autre approche qui n'utilise pas "sed" et ressemble plus à ce
qu'on ferait dans d'autres langages de scripting :

while read -r line; do
echo "$prefix" $line;
done < $file > ~/MaZyc/$prefix.m3u

Voilà, voilà.



Plus d'informations sur la liste de diffusion Linux-bruxelles