Equivalent du 'like' en shell

Claude Lacroix -  
nowahn Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je cherche à comparer 2 chaines de caractère avec un shell sous LINUX (/bin/sh) :

extrait du shell :
..
Site="toto"
if [ "Nom" ??? "$Site" ]
then
ect....
avec mes $Site pouvant avoit les valeurs toto1 toto2 toto3 ...etc, donc ces valeurs peuvent 'matcher' à mon test.

Je cherche l'opérateur ??? faisant l'équivalent du 'like' sous SQL
Merci
Claude
A voir également:

2 réponses

Franzux Messages postés 8907 Date d'inscription   Statut Contributeur Dernière intervention   1 145
 
= ?
0
nowahn Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

2 solutions, mais qui marche sous bash, pas sur que ça marche sous sh si il n'est pas bash (tu n'as qu'à essayer) :

- la forme simple :
if [["$Site" == toto*]]
Il faut les doubles [[et]], pas de "" autour du deuxième argument.
Ça utilise les mêmes caractères spéciaux que le shell (*, ?, […], …).

- la forme plus complexe :
if [["$Site" =~ 'toto.*']]
Il faut aussi les doubles [[et]].
Ça utilise des expressions régulière, c'est plus complexe mais ça permet de faire plus de chose.

Pour ton cas, la première solution est suffisante.

PS : fait pas gaffe aux liens, j'arrive pas à supprimer l'effet des doubles [] dans le message.
0