#1 Le 02/04/2014, à 12:45
- master_29
Extraire des expressions d'un fichier text ( en bash )
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.
Dernière modification par master_29 (Le 02/04/2014, à 15:58)
Hors ligne
#2 Le 02/04/2014, à 21:04
- temps
Re : Extraire des expressions d'un fichier text ( en bash )
Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net
Hors ligne
#3 Le 03/04/2014, à 05:42
- pingouinux
Re : Extraire des expressions d'un fichier text ( en bash )
Bonjour,
Si, comme dans ton exemple, il y a une ligne par fichier .mp3, et que ces derniers ne contiennent pas d'espaces :
tablo=( $(sed -r 's/.*<a href="([^"]+\.mp3)">.*/\1/g' ton_fichier) )
for i in "${tablo[@]}"; do echo "$i"; done
Résultat
N0001.mp3
N0017.mp3
N0021.mp3
N0022.mp3
Hors ligne
#4 Le 03/04/2014, à 05:57
- nesthib
Re : Extraire des expressions d'un fichier text ( en bash )
@temps : évite les réponses trop généralistes, surtout si celle ci sort la discussion de la liste des problèmes sans réponse.
Une solution avec grep :
tableau=($(grep -oP '(?<=<a href=")[^"]+' fichier))
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#5 Le 03/04/2014, à 08:00
- credenhill
Re : Extraire des expressions d'un fichier text ( en bash )
hello
avec awk
$ t=($(awk -F 'href="|3">' '{print $2 "3"}' fichier))
$ echo ${#t[@]}
4
$ echo ${t[@]}
N0001.mp3 N0017.mp3 N0021.mp3 N0022.mp3
En ligne
#6 Le 03/04/2014, à 12:27
- master_29
Re : Extraire des expressions d'un fichier text ( en bash )
Bonjour merci à tous,
le code qui marche le mieux est celui de nesthib, mais ça m'affiche :
?C=N;O=D
?C=M;O=A
?C=S;O=A
?C=D;O=A
/partage/
N0001.mp3
N0017.mp3
N0021.mp3
N0022.mp3
et c'est pas ce que je veux comment je pourai afficher que les .mp3 ?
Hors ligne
#7 Le 03/04/2014, à 12:42
- credenhill
Re : Extraire des expressions d'un fichier text ( en bash )
le awk peut être affiné avec
t=($(awk -F 'href="|3">' '/\.mp3/ {print $2 "3"}' fichier))
En ligne
#8 Le 03/04/2014, à 12:49
- pingouinux
Re : Extraire des expressions d'un fichier text ( en bash )
Et pour éliminer les lignes ne contenant pas la chaîne recherchée, avec le sed du #3 :
tablo=( $(sed -rn 's/.*<a href="([^"]+\.mp3).*/\1/pg' ton_fichier) )
Hors ligne
#9 Le 03/04/2014, à 13:34
- master_29
Re : Extraire des expressions d'un fichier text ( en bash )
Merci beaucoup les gars, c'est bon ça marche
Hors ligne
#10 Le 03/04/2014, à 14:54
- nesthib
Re : Extraire des expressions d'un fichier text ( en bash )
@master29 : est-ce que tu peux donner un extrait de la page web pour laquelle ma commande ne fonctionne pas ? Tu peux toujours ajouter « \.mp3 » à la fin de l'expression rationnelle pour avoir le motif « [^"]+\.mp3 », après tout ma commande récupère simplement les URL, sans distinction.
NB. évite de demander de l'aide par message privé, ça ne correspond pas à l'esprit du forum. Si tu as une question, pose la directement sur le forum.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#11 Le 03/04/2014, à 16:38
- master_29
Re : Extraire des expressions d'un fichier text ( en bash )
@nesthib : Je suis désolé pour le message privé, c'est bon j'ai modifié le code et ça marche
Hors ligne