[Shell Bash] Afficher une partie d'une ligne

Dadou -  
 Dadou -
Bonjour à tous !

J'ai un petit problème avec la commande grep. Je m'explique : je suis en train de créer un petit script de traitement des fichiers mp3, et comme lors du changement de bitrate (c'est compliqué mais pas important pour mon problème ^^) les tags du fichier sont détruits, je les stocke auparavant avec mp3info dans un fichier dont je crée la syntaxe. La voici :

FILE=<fichier>.mp3
TITLE=<titre>
TRACK=<n° de piste>
ARTIST=<artiste>
ALBUM=<album>
YEAR=<année>
GENRE=<genre>
COMMENT=<commentaire>

Après avoir fait mes conversions de fichier, je stocke les informations du fichier de tags dans le morceau, grâce à mp3info. Par exemple, pour réécrire le tag du titre du morceau, j'utiliserai cette commande :

mp3info -t `grep -E '^TITLE=(.+)' $fichier.tag` $fichier

Le problème, c'est que je ne sais pas comment isoler seulement ce qui est après TITLE=. Faut-il que j'utilise une autre commande ?

Merci à tous ceux qui pourront me répondre ;)
Configuration: Linux
Firefox 2.0.0.6

4 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,
    lami20j@deb:~/trash$ cat aaa
    FILE=<fichier>.mp3
    TITLE=<titre>
    TRACK=<n° de piste>
    ARTIST=<artiste>
    ALBUM=<album>
    YEAR=<année>
    GENRE=<genre>
    COMMENT=<commentaire>
    lami20j@deb:~/trash$ sed -ne s/^TITLE=//p aaa
    <titre>
    0
  2. Dadou
     
    Merci beaucoup, ta solution marche !
    Mais si ce n'est pas trop demander, pourrait tu m'expliquer comment marche cette commande obscure ?

    Merci ;)
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    sed
    	La commande. Sed est un éditeur de flux orientée ligne
    
    -n
    	Cette option (en conjonction avec le flag "p") force l'affichage en sortie uniquement de la ligne matchée
    
    e
    	Option facultative. Permet en général d'enchainer plusieurs commandes sur la même ligne, chacune commençant par "-e"
    
    s
    	Comme substitution. Permet de substituer le motif mis en évidence dans 1ère  partie des "/.../" par la chaine de remplacement fournie dans la 2nd partie des 	"/..."
    
    /^TITLE=//
    	Ici on substitue donc le motif   "TITLE=" (^ indique le début) par rien "//" (il n'y  a rien entre les 2 slashs)
    
    p
    	Demande l'affichage si une substitution a été faite.
    ;-))
    0