usuwanie zduplikowanych słów ze zdań w pliku [duplikat]

Dec 08 2020

jak mogę usunąć zduplikowane słowa ze zdań w pliku, każde zdanie zapisane w osobnym wierszu.

Dziękuję Ci

Mam te zdania w aktach

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

oczekiwane wyjście powinno być

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

Odpowiedzi

1 dawg Dec 08 2020 at 01:28

Możesz to zrobić:

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

Wydruki:

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

Aby zachować strukturę linii:

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

Wydruki:

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

Jeśli deduplikacja dotyczy tylko linii:

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

Wydruki:

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