Bonjour,
Dans un script bash de création de de graph avec graphviz, j'essaie de faire la recherche de 2 chaînes de caractères dans un fichier qui se nomme graph.dot

Voici la fin de mon fichier graph.dot:
	subgraph cluster_BatH {
	  bgcolor=aquamarine;
	  label = "Bat_H";
	}
"node156" -- "node128"[taillabel="7", headlabel="24"];
"node156" -- "node155"[taillabel="49", headlabel="50"];
"node155" -- "node144"[taillabel="49", headlabel="50"];
"node155" -- "node156"[taillabel="50", headlabel="49"];
}
Voici un extrait de mon script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#chaines à rechercher dans le fichier graph.dot
lien1="\"node$host\" -- \"node$Remotehost\"[taillabel=\"$LocalPort\",headlabel=\"$RemotePort\"]\;"
lien2="\"node$Remotehost\" -- \"node$host"[taillabel="$RemotePort",headlabel="$LocalPort"];"
		echo "lancement recherche des chaines"
		grep "$lien2" graph.dot || grep "lien1" graph.dot
		resultat=$(echo $?)
		echo "test présence= $resultat"
		if [ "$resultat" -eq 0 ];
			then
			echo "lien1 ou lien2 trouvé"
			else 
			#insertion de la ligne suivante à la fin du fichier graph.dot
			echo "\"node$host\" -- \"node$Remotehost\"[taillabel=\"$LocalPort\",headlabel=\"$RemotePort\"];">>graph.dot
		fi
Or mon test if semble ne pas fonctionner car mon grep ne sait pas rechercher mes 2 chaînes "complexes". Je dois avoir un problème de syntaxe !
La valeur des variables est correcte car si je fais un echo de $lien1 et $lien2 j'ai bien à un moment une correspondance avec une ligne existante dans graph.dot mais la commande grep ne la voit pas
Même en remplacant ma chaine de $lien1 par "node156" -- "node128"[taillabel="7", headlabel="24"];" grep de voit rien!

J'ai essayé d'échapper avec \ tous les " à l'intérieur des " des extrémités, mais en vain.

J'espère m'exprimer comme il faut pour me faire comprendre!

Merci pour votre aide!