Sed : supprimer des lignes identiques

Résolu
Bulot56 Messages postés 10 Statut Membre -  
Bulot56 Messages postés 10 Statut Membre -
Bonjour,

Je cherche à supprimer des lignes commençant par les 3 mêmes mots. Je voudrais garder juste la dernière.

Par exemple :
tata titi toto nimportekoi
tata titi toto autrechose

Devient :
tata titi toto autrechose

J'imagine que sed est mon ami mais là ça me dépasse !

Merci.

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    awk est notre ami
    $ awk '{t[$1, $2, $3]=$0} END {for(n in t)print t[n]}' fichier
    tata titi toto autrechose
    $ 
    0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Et pourquoi pas avec les outils faits pour, comme sort par exemple ?

    $ cat brol
    tata titi toto nimportekoi
    tata titi toto autrechose 
    
    $ sort brol | sort -u -t ' ' -k1,1 -k2,2 -k3,3
    tata titi toto autrechose 

    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Si tu tiens à le faire avec "sed", voilà un exemple :

      sed 'N;s/^\([^ ]*\)\([^ ]*\)\([^ ]*\).*\n\1\2\3\(.*\)/\1\2\3\4/' brol

      Mais bon, "awk" est largement plus adapté ;-)
      0
  3. Bulot56 Messages postés 10 Statut Membre
     
    Merci beaucoup !

    Version awk adoptée (non sed je n'y tiens pas plus que ça ...)!
    0