# \[AWK|SED\] exclure une chaine de caractère

**URL:** <https://www.debian-fr.org/t/awk-sed-exclure-une-chaine-de-caractere/66192>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 9:43 UTC](https://www.debian-fr.org/t/awk-sed-exclure-une-chaine-de-caractere/66192 "2016-02-21T21:43:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Février 21, 2016, 9:43 UTC](https://www.debian-fr.org/t/awk-sed-exclure-une-chaine-de-caractere/66192/1 "2016-02-21T21:43:57Z")

</div>

Bonsoir,

Je cherche à exclure une chaîne … figurant après le séparateur suivant : .  
Soit la chaîne suivante ‘aaa.bbb’, je ne veux que ‘aaa’ ?

Avec awk, il suffit de faire : echo “aaa.bbb” | awk -F “.” ‘{print $1}’

Maintenant ma chaîne est construite ainsi : ‘aaa.bbb.ccc’ mais je veux récupérer ‘aaa.bbb’ …

En fait, le propos est de récupérer tout caractère avant l’ultime '.'  
La commande ci-dessus ne suffit puisque nous récupérons que ‘aaa’ et non pas ‘aaa.bbb’ ; or, je tiens à récupérer tout ce qui est avant le dernier point, s’il y en a plusieurs.

Quid ?

---

<div class="post-metadata">

**Author:** ![N3mesis98](https://www.debian-fr.org/user_avatar/www.debian-fr.org/n3mesis98/32/3002_2.png) [@N3mesis98](https://www.debian-fr.org/u/N3mesis98)\
**Post date:** [Février 21, 2016, 9:44 UTC](https://www.debian-fr.org/t/awk-sed-exclure-une-chaine-de-caractere/66192/2 "2016-02-21T21:44:03Z")

</div>

Je ne suis pas un expert avec [mono]awk[/mono]…  
En revanche avec [mono]sed[/mono] ça pourrais te donner ceci par exemple :

```auto

```

En gros la regexp [mono].[[:alnum:]]\*$[/mono] détecte la dernière partie de la chaine et ensuite on la supprime.

Sinon, tu peux aussi utiliser l’expression suivante : [mono]^[[:print:]]_.[[:alnum:]]$[/mono]  
Ou [mono][[:print:]]_[/mono] correspond à la partie que tu veux garder et [mono].[[:alnum:]][/mono] à celle que tu veux supprimer.  
Après, reste à l’exploiter, ce que je ne sais pas faire avec [mono]awk[/mono], mais qui pourrais donner ceci avec [mono]sed[/mono] :

```auto

```

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Février 21, 2016, 9:44 UTC](https://www.debian-fr.org/t/awk-sed-exclure-une-chaine-de-caractere/66192/3 "2016-02-21T21:44:03Z")

</div>

Y’a des fois où je me demande si je ne suis pas un véritable crétin, un “âne baté” … enfin.

@Nemesis98, je te remercie ; en effet il me suffit de faire … `echo "aaa.bbb.ccc7" | sed "s/\.[[:alnum:]]*$//g"`

Parfois, on cherche vraiment les complications, tsss … Merci à toi 😃
