J'ai besoin d'un script sh va obtenir le texte d'un fichier html, je télécharge le fichier avec
wget website.com/link_123456789 -O 'testfile.txt'
le contenu complet de ce fichier est situé à cette Pastebin
Mais vous n'avez pas besoin de tout cela, juste des lignes importantes
<br>
<IFRAME style="max-width: 850px;" SRC="http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html" FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO width="100%" HEIGHT=450></IFRAME>
<br><br>
<p>
J'ai besoin du texthttp://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
du fichier.
Existe-t-il une réponse simple à utiliser avec d'autres chaînes?
Utilisation de awk
et de plusieurs délimiteurs pour -F
searchfor="vodlocker"
wget -q -O- http://Pastebin.com/raw/VbrXHEYd | awk -F'SRC="|"' '/SRC/ && /'"$searchfor"'/ {print $4}'
Exemple de sortie:
$ searchfor="vodlocker"; wget -q -O- http://Pastebin.com/raw/VbrXHEYd | awk -F'SRC="|"' '/SRC/ && /'"$searchfor"'/ {print $4}'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
Utilisation de grep
avec PCRE (-P
):
grep -Po 'SRC="\K[^"]+(?=")' testfile.txt
Avec sed
:
sed -nr 's/.*SRC="([^"]+)".*/\1/p' testfile.txt
Les deux prennent la chaîne désirée entre guillemets et ont SRC=
devant.
Exemple:
% wget -q -O- http://Pastebin.com/raw/VbrXHEYd | grep -Po 'SRC="\K[^"]+(?=")'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
% wget -q -O- http://Pastebin.com/raw/VbrXHEYd | sed -nr 's/.*SRC="([^"]+)".*/\1/p'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
Depuis, il a demandé un script Shell interactif, cela peut être une alternative (en supposant que le code HTML est téléchargé sur votre PC). Veuillez copier les informations suivantes dans Gedit:
#!/bin/sh
echo -n "Please enter the name of the website (such as vodlocker): "
read site
wget -c $(grep IFRAME ~/Downloads/VbrXHEYd.html | awk '/<IFRAME/ {print $4}' | awk -F'"' '{print $2}')
Enregistrez le fichier sous le nom somename.sh .
Maintenant, donnez au fichier les autorisations exécutables:
chmod a+x /path/to/somename.sh
Ensuite, exécutez le fichier en tant que:
sh /path/to/somename.sh
Voici une capture d'écran:
vous pouvez aussi utiliser html2
avec sed
:
$ curl -s http://Pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html