Extraire des expressions d'un fichier text ( en bash )

Résolu
master_29 Messages postés 59 Statut Membre -  
master_29 Messages postés 59 Statut Membre -
Bonjour,

J'aimerai extraire des expressions qui se trouve dans un fichier, et les mettre dans un tableau, le fichier est le suivant :
/*

<tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0001.mp3">N0001.mp3</a></td><td align="right">02-Apr-2014 11:39 </td><td align="right"> 46K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0017.mp3">N0017.mp3</a></td><td align="right">02-Apr-2014 12:56 </td><td align="right"> 51K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0021.mp3">N0021.mp3</a></td><td align="right">02-Apr-2014 12:56 </td><td align="right">152K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0022.mp3">N0022.mp

*/

et je veux récupérer les expressions "quelques chose .mp3" et les mettre dans un tableau avec ( grep et sed ).

J'ai vu dans autres postes qu'il avait des réponses à des trucs comme ça mais je ne connais pas la signification de certains symboles du coup j'ai pas pu le faire.

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    $ cat brol 
    /*

    <tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0001.mp3">N0001.mp3</a></td><td align="right">02-Apr-2014 11:39 </td><td align="right"> 46K</td><td> </td></tr>
    <tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0017.mp3">N0017.mp3</a></td><td align="right">02-Apr-2014 12:56 </td><td align="right"> 51K</td><td> </td></tr>
    <tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0021.mp3">N0021.mp3</a></td><td align="right">02-Apr-2014 12:56 </td><td align="right">152K</td><td> </td></tr>
    <tr><td valign="top"><img src="/icons/sound2.gif" alt="[SND]"></td><td><a href="N0022.mp3">N0022.mp3</a></td><td align="right">02-Apr-2014 12:56 </td><td align="right">152K</td><td> </td></tr>

    */

    $ mapfile -O 1 -t TAB < <(grep -Po '.*>\K[^<]*mp3' brol)

    $ echo "${#TAB[@]}"
    4

    $ for ((i=1;i<=${#TAB[@]};i++)); do echo ${TAB[${i}]};done
    N0001.mp3
    N0017.mp3
    N0021.mp3
    N0022.mp3

    $ echo "${TAB[2]}"
    N0017.mp3

    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    variante avec grep
    $ t=($(grep -oP '(?<=href=").*mp3(?=">)' fichier))
    $ echo ${#t[@]}
    4
    $ echo ${t[@]}
    N0001.mp3 N0017.mp3 N0021.mp3 N0022.mp3
    $
    0
  3. master_29 Messages postés 59 Statut Membre 12
     
    Merci beaucoup les gars, j'ai réussi :)
    0