suppression des mots en double des phrases du fichier [duplicate]

Dec 08 2020

comment puis-je supprimer les mots en double des phrases dans le fichier, chaque phrase écrite dans une ligne distincte.

Je vous remercie

J'ai ces phrases dans le fichier

hello every body hello
word I should remove the word
how can can i remove it ?

le résultat attendu doit être

hello every body
word I should remove the
how can i remove it ?

Réponses

1 dawg Dec 08 2020 at 01:28

Tu peux faire:

awk '{for(i=1;i<=NF;i++) if(++arr[$i]==1) print $i}' file

Impressions:

hello
every
body
word
I
should
remove
the
how
can
i
it
?

Pour conserver la structure de ligne:

awk '{for(i=1;i<=NF;i++) 
       if(++arr[$i]==1) printf "%s%s", $i, OFS
       print ""}' file

Impressions:

hello every body 
word I should remove the 
how can i it ? 

Si la déduplication est uniquement sur une base par ligne:

awk '{delete arr
      for(i=1;i<=NF;i++) 
         if(++arr[$i]==1) printf "%s%s", $i, OFS
      print ""}' file

Impressions:

hello every body 
word I should remove the 
how can i remove it ?