Sujet : Re: Regex qui supprime tout le reste de la ligne après le premier espace
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.regexpDate : 08. Dec 2024, 13:09:27
Autres entêtes
Organisation : There's no cabale
Message-ID : <vj429n$1976$1@cabale.usenet-fr.net>
References : 1 2
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Le 08/12/2024 11:07, Jo Engo répondait à yamo' :
Je suis nul en regex
Moi aussi, mais généralement je les comprends, et je peux faire des
simples. Testé :
sed '/^:/!s/ .*$//' fichier.txt
semble faire le job, mais ce n'est pas moi qui l'ai écrit :o)
Et en l'occurrence cette commande sed utilise non pas une mais deux regex.
La première regex cherche quelles lignes commencent par un ':' :
/^:/
Puis on exclut ces lignes :
!
Et enfin on effectue la substitution par une seconde regex sur les lignes
restantes :
s/ .*$//
(noter que le '$' est inutile même s'il ne gêne pas)
Je vais maintenant chercher à répondre à la question par une seule regex, en
supposant que le moteur est compatible perl (PCRE).
-- Olivier Miakinen