Citation
Lil'one
Slt,
Quelle est la commande pour rechercher une
expression dans une phrase, hormis la fonction
GREP.
ex: toto adore lea-linux.
je veux chercher le mot lea dans la phrase quand
je balaye le fichier ligne par ligne ??
Merci à tous.
Alors juste pour le fun (et le plaisir d'écrire du shell), voici un moyen de dire si un mot "$mot" se trouve dans une ligne "$ligne" sans passer par "grep"
#!/bin/sh
# Récupération longueur mot et ligne
lgMot=`expr $mot : ".*"`
lgLig=`expr $ligne : ".*"`
# Boucle sur chaque mot de la ligne
i=1
fin=`expr $i + $lgMot`
while test $fin -le $lgLig
do
....# Test si la zone commençant à "i" correspond au mot
....if test "`echo $ligne |cut -c$i-$fin`" = "$mot"
....then
........echo "$mot est présent"
....fi
....i=`expr $i + 1`
....fin=`expr $fin + 1`
done
A titre comparatif, voici la même chose en utilisant "grep"
#!/bin/sh
# Test si le mot est dans la ligne
if echo $ligne |fgrep "$mot" 1>/dev/null
then
....echo "$mot est présent"
fi
De mon point de vue, ya pas photo...
Citation
Basile STARYNKEVITCH
il y
a fgrep qui cherche un mot exact (et non pas une
expression régulière) et aussi agrep.
Tiens ? je connaissais "egrep" mais pas "agrep". Faudra que j'examine cette commande...:-)
L'homme qui murmurait à l'oreille des pingouins
[
fr.lang.free.fr]
Poste le Thursday 23 February 2006 19:39:40