# Bash : sed - remplacer un text uniquement à la première occurrence

**URL:** <https://www.debian-fr.org/t/bash-sed-remplacer-un-text-uniquement-a-la-premiere-occurrence/74725>\
**Category:** Programmation\
**Created:** [Octobre 11, 2017, 1:34 UTC](https://www.debian-fr.org/t/bash-sed-remplacer-un-text-uniquement-a-la-premiere-occurrence/74725 "2017-10-11T13:34:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sowlene](https://www.debian-fr.org/user_avatar/www.debian-fr.org/sowlene/32/7715_2.png) [@Sowlene](https://www.debian-fr.org/u/Sowlene)\
**Post date:** [Octobre 11, 2017, 1:34 UTC](https://www.debian-fr.org/t/bash-sed-remplacer-un-text-uniquement-a-la-premiere-occurrence/74725/1 "2017-10-11T13:34:09Z")

</div>

Bonjour à tous,

je cherche comment remplacer une portion de texte dans un fichier mais seulement à la première occurrence. Je m’explique :

Vous disposez d’un fichier text avec ce contenu :

> #Get the source from GitHub  
> git clone blabla  
> cd /repertoire1/  
> git clone blabla  
> cd /repertoire1/

Je voudrais que ma commande sed remplace uniquement le premier blabla aprés le git clone.

Pour l’instant la commande sed que j’ai me modifie les deux :  
`sed -i "s/\(clone * *\).*/clone nomoreblabla/" /home/test/wtf.txt`

J’ai pensé à le faire grâce à la ligne avec la commande suivante :  
` sed -i "2s/\(clone * *\).*/clone modifjustligne2/" /home/test/wtf.txt`  
Malheureusement, le fichier est amené à évoluer donc la ligne ne sera pas fixe.

_ **Bonus** _ : Si quelqu’un sait comment ajouter un texte sous une ligne grace à sed je prend également ^^ (juste pour ajouter une phrase entre

> #Get the source from GitHub  
> git clone blabla

Je vous remercie 🙂

---

<div class="post-metadata">

**Author:** ![Sowlene](https://www.debian-fr.org/user_avatar/www.debian-fr.org/sowlene/32/7715_2.png) [@Sowlene](https://www.debian-fr.org/u/Sowlene)\
**Post date:** [Octobre 11, 2017, 2:07 UTC](https://www.debian-fr.org/t/bash-sed-remplacer-un-text-uniquement-a-la-premiere-occurrence/74725/2 "2017-10-11T14:07:49Z")

</div>

Re bonjour !

J’ai finalement trouvé la solution à mon problème d’occurrence, mais **je cherche toujours comment insérer une ligne entre deux autres.**  
Comme dis dans le bonus du post :

> [@Sowlene](#):
>
> Bonus : Si quelqu’un sait comment ajouter un texte sous une ligne grace à sed je prend également ^^ (juste pour ajouter une phrase entre
> 
> #Get the source from GitHub  
> git clone blabla

Pour les curieux voici ma solution pour le remplacement à la première occurrence :

`sed -i 0,/blabla/{s/blabla/nomoreblabla/} /home/test/wtf.txt`

**_EDIT_** :  
Des amis m’ont finalement aidés à résoudre mon soucis «&nbsp;_ **Bonus** _&nbsp;» je vous transmet la solution, si besoin vous avez :

`sed -i "0,/Github/{s/Github/Github\\n\\tNvelleLigneApresSautDeLigne/}" /home/test/wtf.txt`
