Ici, tu veux récupérer ce qui est en rouge:
Code:
... REF_ARTICLE="0123456789" ...
Donc dans un premier temps, faisons la capture sur cette chaine précise (ici, je le fais en uniligne) :
Code:
1 2
| $ echo '... REF_ARTICLE="0123456789" ...' | perl -ne '/... REF_ARTICLE="(0123456789)" .../; print $1."\n"'
0123456789 |
On est ok, ça fonctionne, maintenant, essayons de la rendre générique, donc retirons déjà ce qui est inutile dans la recherche:
Code:
1 2
| $ echo '... REF_ARTICLE="0123456789" ...' | perl -ne '/REF_ARTICLE="(0123456789)"/; print $1."\n"'
0123456789 |
Là, ça fonctionne aussi, mais sur une chaine précise que l'on a réduit au minimum, reste plus qu'à identifier comment rendre générique la capture et ici on voit que ça commence par un guillemet et que ça fini par un guillemet (ceux-ci exclu de la capture) et de plus, on sait que l'on ne peut pas avoir de chaine vide ce que l'on peut traduire en expression régulière par (en rouge, la regex) :
"([^"]+)".
et donc, au final ça donne:
Code:
1 2
| echo '... REF_ARTICLE="0123456789" ...' | perl -ne '/REF_ARTICLE="([^"]+)"/; print $1."\n"'
0123456789 |