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

Résolu/Fermé
master_29 Messages postés 49 Date d'inscription dimanche 8 décembre 2013 Statut Membre Dernière intervention 28 août 2017 - 2 avril 2014 à 17:02
master_29 Messages postés 49 Date d'inscription dimanche 8 décembre 2013 Statut Membre Dernière intervention 28 août 2017 - 4 avril 2014 à 17:20
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.

A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 avril 2014 à 23:23
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
3 avril 2014 à 08:53
hello
variante avec grep
$ t=($(grep -oP '(?<=href=").*mp3(?=">)' fichier))
$ echo ${#t[@]}
4
$ echo ${t[@]}
N0001.mp3 N0017.mp3 N0021.mp3 N0022.mp3
$
0
master_29 Messages postés 49 Date d'inscription dimanche 8 décembre 2013 Statut Membre Dernière intervention 28 août 2017 12
4 avril 2014 à 17:20
Merci beaucoup les gars, j'ai réussi :)
0