Shell : supprimer toutes occurences sauf une

Résolu
toutmaispasaix -  
 toutmaispasaix -
Bonjour,

Je souhaiterais supprimer toutes les occurences, sauf la première, d'un motif dans une ligne. Je voudrais le faire en shell et le plus générique (multi os/shell) possible.

Exemple :
Je pars de
toto tata titi toto tutu tete tyty toto
Et je veux
toto tata titi tutu tete tyty

Avec sed je sais supprimer la nème occurence, ou toutes les occurences mais je ne sais pas les supprimer toutes sauf une.

Merci d'avance

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    jp@MDK:~/tmpfs ssh$ cat plop
    Je pars de
    toto tata titi toto tutu tete tyty toto
    Et je veux
    toto tata titi tutu tete tyty
    
    jp@MDK:~/tmpfs ssh$ sed ':z;s/toto//2;tz' plop
    Je pars de
    toto tata titi  tutu tete tyty
    Et je veux
    toto tata titi tutu tete tyty
    
    jp@MDK:~/tmpfs ssh$

    ;-))
    1
    1. toutmaispasaix
       
      Merci cela fonctionne parfaitement !
      Maintenant je vais googler un peu pour comprendre ta réponse :-)
      0
    2. toutmaispasaix
       
      Je viens de découvrir les branchements avec sed :-)
      Merci!
      0