Bonjour,
J’essaie depuis un moment de tenter d'extraire une chaîne de caractères avec sed, qui peut éventuellement être précéder d'un préfixe (que je veux garder), mais jusque là, sans succès.
Par exemple, avec:
Chaine="sans importance préfixeMaString et une éventuelle suite"
Chaine="sans importance MaString et une autre suite"
j'aimerais un expression qui me sorte "préfixeMaString et une éventuelle suite" et "MaString et une autre suite"
Voici la commande autour de laquelle je tourne en rond, avec pleins de variantes, sans toutefois donner de résultats:
Code :
- echo "$Chaine" | sed 's/ .* \( \(préfixe\)\? MaString.*\) /\1/'
|
(j'ai rajouter des espaces pour amélioré la lecture, dans la vrai commande, j'en utilise bien-sûr aucun)
Mais celle-ci ne me sort jamais le préfixe quant il y en a un.
Cette autre variante ne marche pas mieux:
Code :
- echo "$Chaine" | sed 's/ .* \(préfixe\)\? \(MaString.*\) /\1\2/'
|
En essayant une autre forme:
Code :
- echo "$Chaine" | sed 's/ \(.*\) \(\(préfixe\)\? MaString.*\) /\1/'
|
je me rend compte que mon préfixe fait parti du groupe 1, comme si le '.*' "bouffait" mon préfixe au lieu de le laisser au groupe 2.
Est-ce que vous pouvez m'expliquer ce qui ne va pas dans mon expression?
Merci
Message édité par wistiti68 le 07-01-2013 à 22:13:36