[Shell Bash] Afficher une partie d'une ligne

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. Modérateur
    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
    1. Merci beaucoup, ta solution marche !
      Mais si ce n'est pas trop demander, pourrait tu m'expliquer comment marche cette commande obscure ?

      Merci ;)
      0
      1. Modérateur
        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
        1. Merci beaucoup à vous deux ! ^^
          0