Entfernen doppelter Wörter aus Sätzen in der Datei [doppelt]

Dec 08 2020

Wie kann ich die doppelten Wörter aus Sätzen in der Datei entfernen, wobei jeder Satz in einer separaten Zeile geschrieben wird?

Dankeschön

Ich habe diese Sätze in der Datei

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

die erwartete Ausgabe sollte sein

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

Antworten

1 dawg Dec 08 2020 at 01:28

Du kannst tun:

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

Drucke:

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

So behalten Sie die Linienstruktur bei:

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

Drucke:

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

Wenn die Deduplizierung nur pro Zeile erfolgt:

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

Drucke:

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