logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
doc:sed-non-greedy-pattern [31/08/2020 16:06]
David5647 créée
— (Version actuelle)
Ligne 1: Ligne 1:
-====== Sed et recherche de motif non-gourmande ====== 
- 
-  * Objet : sed : recherche non-gourmande de motif (non-greedy pattern) ​ 
-  * Niveau requis : avisé {{tag>​débutant avisé}} 
-  * Commentaires : //Contexte d'​utilisation du sujet du tuto. // FIXME 
-  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
-  * Suivi : {{tag>​en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:​atelier:#​tags|l'​Atelier]]. 
-    * Création par [[user>​David5647]] 31/08/2020 
-    * Testé par <...> le <...> FIXME 
-  * Commentaires sur le forum : [[:​url-invalide | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME 
- 
-==== Comportement par défaut ==== 
- 
-Par défaut, lors de la recherche d'une expression régulière,​ la correspondance retournée par sed est la plus longue chaîne de caractères possible. 
- 
-Soit le texte suivant: 
-<​code>​Une 1ère phrase. Une deuxième phrase. Une troisième phrase. Une quatrième phrase!</​code>​ 
-Extraire la première phrase c'est lister tout les caractères jusqu'​au premier point, soit l'​expression régulière : 
-<​code>​.*/​.</​code>​ 
- 
-Mais une telle recherche renvoie la plus longue chaîne possible: 
-<code user>​echo "Une 1ère phrase. Une deuxième phrase. Une troisième phrase. Une quatrième phrase!"​ | sed -r '​s/​(.*\.).*/​\1/'</​code>​ 
-<​code>​Une 1ère phrase. Une deuxième phrase. Une troisième phrase.</​code>​ 
- 
-==== Recherche non-gourmande ==== 
- 
-Pour effectuer une recherche plus restrictive et trouver la plus petite chaîne correspondante,​ il suffit simplement de rechercher tout les caractères sauf le point. Soit l'​expression régulière suivante: 
-<​code>​[^.]*\.</​code>​ 
-On obtient alors : 
-<code user>​echo "Une 1ère phrase. Une deuxième phrase. Une troisième phrase. Une quatrième phrase!"​ | sed -r '​s/​([^.]*\.).*/​\1/'</​code>​ 
-<​code>​Une 1ère phrase.</​code>​ 
- 
-==== Aller plus loin ==== 
- 
-En répétant la motif plusieurs fois, on peut alors extraire toutes les correspondances. Soit l'​expression régulière:​ 
-<​code>​([^.]*\.){$i}</​code>​ avec i le nombre de répétitions 
- 
-Soit dans une boucle: 
-<code user>for i in 1 2 3; do  
-   echo "Une 1ère phrase. Une deuxième phrase. Une troisième phrase. Une quatrième phrase!"​ | sed -r "​s/​([^.]*\.){$i}.*/​\1/"​ ; 
-done</​code>​ 
-<​code>​Une 1ère phrase. 
- Une deuxième phrase. 
- Une troisième phrase.</​code>​ 
- 
-Voilà, c'est bête, mais j'ai cherché longtemps :P 
- 
  
doc/sed-non-greedy-pattern.1598882819.txt.gz · Dernière modification: 31/08/2020 16:06 par David5647

Pied de page des forums

Propulsé par FluxBB