Outils d'utilisateurs

Outils du Site


lien:bash:perso:abs:html2sh

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

lien:bash:perso:abs:html2sh [2009/05/24 18:15]
per
lien:bash:perso:abs:html2sh [2009/05/24 21:10] (Version actuelle)
per
Ligne 1: Ligne 1:
 [[.|retour]] [[.|retour]]
 ====== html2sh ====== ====== html2sh ======
-Script bash pour extraire les scripts des pages html de http://abs.traduc.org/abs-5.3-fr/+Script bash pour extraire les scripts des pages html du Guide avancé d'écriture des scripts Bash 
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Ligne 14: Ligne 15:
 if grep -q programlisting "$1" if grep -q programlisting "$1"
 then  then 
-    # sélection des lignes de programlisting entre <pre  et /pre>+    # sélection des lignes d'un script entre <pre ... programlisting et /pre>
     # Tous les scripts seront regroupés dans le fichier temp     # Tous les scripts seront regroupés dans le fichier temp
     sed -n '/<pre class=\"programlisting\">/,/<\/pre>/p' "$1" >temp     sed -n '/<pre class=\"programlisting\">/,/<\/pre>/p' "$1" >temp
Ligne 20: Ligne 21:
     iconv -f iso8859-15 -t utf8 temp -o tmp     iconv -f iso8859-15 -t utf8 temp -o tmp
     rm temp # suppression de l'ancien fichier     rm temp # suppression de l'ancien fichier
-#arret  # arrêt temporaire+arret  # arrêt temporaire
     # sed -n '/motif/=' donne les numéros de ligne comportant motif     # sed -n '/motif/=' donne les numéros de ligne comportant motif
     # on mémorise chaque fin de script dans une variable fin_script     # on mémorise chaque fin de script dans une variable fin_script
Ligne 31: Ligne 32:
     do     do
         # on va du début à la fin d'un script, puis on supprime les lignes de pre, enfin on enlève les lignes vides du début         # on va du début à la fin d'un script, puis on supprime les lignes de pre, enfin on enlève les lignes vides du début
-        sed -n "$deb,${fin}p" tmp |sed -e "s/<\/pre>//" -e ";s/<pre class=\"programlisting\">//" -e 's/^ *$//' -e '/./,$!d' >${fichier}_${i}.sh+        sed -n "$deb,${fin}p" tmp |sed -e "s/<\/pre>//;s/<pre class=\"programlisting\">//" -e 's/^ *$//;/./,$!d' >${fichier}_${i}.sh
         deb=$fin #pour le script suivant         deb=$fin #pour le script suivant
         let i=i+1 #on incrémente le numéro de script         let i=i+1 #on incrémente le numéro de script
 +        # rm tmp 
     done     done
 else else
Ligne 40: Ligne 42:
 exit 0 exit 0
 </code> </code>
 +
 +Ce script utilise beaucoup l'éditeur de flux Sed, pour en savoir plus :
 +http://www.commentcamarche.net/faq/478-sed
 +[[.|retour]]
lien/bash/perso/abs/html2sh.1243181745.txt.gz · Dernière modification: 2009/05/24 18:15 par per