Bonjour,
j'ai besoin de créer un parser wiki, j'ai donc commencé le code ci-dessous.
Je traite les infos lignes par lignes et mots par mots.
Je traite le mot par mot avec set.
Mais lorsque on passe en argument à set des caractères spéciaux comme +-* (par exemple) ben il les interprète et ne m'affiche donc plus ce que je lui ait passé avec echo $1 :
set *
echo $1
set \* ne fonctionne pas mieux.
Code :
- #!/bin/bash
- egal6="ferme"
- cat /home/gigi/Bureau/wiki | \
- while read ligne; do
- affichage_ligne=''
- set $ligne
- for i in `seq 1 $#`; do #on parcours les mots
- mot="$1" #$1 vaut le premier mot $2 le deuxième etc...
- ### test de la chaine ====== ###
- if [ "$mot" = "======" ] && [ "$egal6" = "ferme" ] ; then
- mot="<section><titltle>"
- egal6="ouvert"
- elif [ "$mot" = "======" ] && [ "$egal6" = "ouvert" ] ; then
- mot="</section></titltle>"
- egal6="ferme"
- fi
- affichage_ligne="$affichage_ligne $mot"
- shift #on supprime le 1er mot
- done
- echo $affichage_ligne >> test.txt
- done
- exit 0;
|
Quelqu'un serait il méclairer ? ou trouver une autre méthode pour parser mot par mot ?
Merci d'avance.
Message édité par gigi12345 le 26-01-2008 à 18:02:54