Problème pour parser des mots avec set

Problème pour parser des mots avec set - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-01-2008 à 18:02:07    

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 :
  1. #!/bin/bash
  2. egal6="ferme"
  3. cat /home/gigi/Bureau/wiki | \
  4. while read ligne; do
  5. affichage_ligne=''
  6.  set $ligne
  7.  for i in `seq 1 $#`; do  #on parcours les mots
  8.    mot="$1" #$1 vaut le premier mot $2 le deuxième etc...
  9.    ### test de la chaine ====== ###
  10.    if [ "$mot" = "======" ] && [ "$egal6" = "ferme" ] ; then
  11.      mot="<section><titltle>"
  12.      egal6="ouvert"
  13.    elif [ "$mot" = "======" ] && [ "$egal6" = "ouvert" ] ; then
  14.      mot="</section></titltle>"
  15.      egal6="ferme"
  16.    fi
  17.    affichage_ligne="$affichage_ligne $mot"
  18.    shift #on supprime le 1er mot
  19.  done
  20. echo $affichage_ligne >> test.txt
  21. done
  22. 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
Reply

Marsh Posté le 26-01-2008 à 18:02:07   

Reply

Marsh Posté le 26-01-2008 à 18:44:55    

le shell n'est vraiment pas fait pour ce genre d'usage. Le sujet plus sa place sur programmation :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed