michel@debG53SW:~$ motif1="TOTO"
michel@debG53SW:~$ motif2="TATA"
michel@debG53SW:~$ CHAINE="mon copain TOTO est allé demander des sous à sa TATA l'autre jour."
michel@debG53SW:~$ CHAINE2=${CHAINE#*${motif1}}
michel@debG53SW:~$ echo \"${CHAINE2%${motif2}*}\"
" est allé demander des sous à sa "
michel@debG53SW:~$
michel@debG53SW:~$ motif1="TOTO"
michel@debG53SW:~$ motif2="TATA"
michel@debG53SW:~$ echo "mon copain TOTO est allé demander des sous à sa TATA l'autre jour." > monFichierTexte
michel@debG53SW:~$ sed -n "s/.*${motif1}\(.*\)${motif2}.*/\"\1\"/p" monFichierTexte
" est allé demander des sous à sa "
michel@debG53SW:~$
[quote=“MicP”]michel@debG53SW:~$ motif1="TOTO"
michel@debG53SW:~$ motif2="TATA"
michel@debG53SW:~$ CHAINE="mon copain TOTO est allé demander des sous à sa TATA l'autre jour."
michel@debG53SW:~$ CHAINE2=${CHAINE#*${motif1}}
michel@debG53SW:~$ echo \"${CHAINE2%${motif2}*}\"
" est allé demander des sous à sa "
michel@debG53SW:~$[/quote]
Ca marche mais qu’est ce que c’est long O_O je met 3-4 minutes pour exécuter les lignes [mono]CHAINE2=${CHAINE#${motif1}}[/mono] et [mono]echo "${CHAINE2%${motif2}}"[/mono].
Certe y’a du monde dans ma variable mais quand même… Y’a pas une solution qui irait plus vite?
L’autre solution avec sed ne me convient pas car il faut passer par un fichier intermédiaire.
michel@debG53SW:~$ motif1="TOTO"
michel@debG53SW:~$ motif2="TATA"
michel@debG53SW:~$ echo "mon copain TOTO est allé demander des sous à sa TATA l'autre jour." | \
sed -n "s/.*${motif1}\(.*\)${motif2}.*/\"\1\"/p"
" est allé demander des sous à sa "
michel@debG53SW:~$
je te conseille d’ajouter g. normalement, ça donne les même resultats
sed "s/.*${motif1}\(.*\)${motif2}.*/\"\1\"/g"
autre chose :
selon la description sur le site suivant. \1 représente la première occurrence de l’expression. je ne comprends pas donc pour quoi motif1 et 2 n’apparaissent pas dans le résultat malgré qu’ils appartiennent à l’expression?
est-ce-que parce qu’ils sont des variables ?
[quote]les sauts de ligne de ma variable ne sont toujours pas la.[/quote]parce que, sans guillemets autour de la variable, ils ne sont pas transmis à `sed’ !