Shell comparer 2 chaines de caractère

julien -  
 julien -
Bonjour a tous,

j'ai 2 chaines de caractères, et je voudrais savoir si l'une contient au moins l'un des caractères de l'autre. j'ai bricolé un truc avec grep, mais c'est pourri ça me prends toute la chaine comme référence, et pas au moins l'un des caractères.

merci d'avance
A voir également:

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
hello
$ s1="abcdefg" ; s2="123456"
$ [[ "$s1" =~ [$s2] ]] && echo  contient || echo ne contient pas
ne contient pas
$ s2="1234c56"
$ [[ "$s1" =~ [$s2] ]] && echo  contient || echo ne contient pas
contient
$
3
julien
 
merci ça marche du tonnerre !!! le pire c que j'ai déja pifé le =~ mais j'ai pas penser du tout au " " et au [ ] autour des variables. ça sert a quoi au juste?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
sans "" l'expression à droite est une expression regulière.donc [$s2] soit [123456] va tester chaque caractère individuellement, 1 ou 2 ou 3 ...
0
julien
 
ok merci encore ^^
0
Utilisateur anonyme
 
salut,

comme ça ?
$ chaine=abc
$ echo "$chaine" | sed 's/./&\\|/g; s/\\|$//'
a\|b\|c
$ regexp=$(echo "$chaine" | sed 's/./&\\|/g; s/\\|$//')
$ echo "ohnonon" | grep "$regexp" && echo ouais || echo non
non
$ echo "blabla" | grep "$regexp" >/dev/null 2>&1 && echo ouais || echo non
ouais
0