eliminar palabras duplicadas de oraciones en archivo [duplicado]

Dec 08 2020

¿Cómo puedo eliminar las palabras duplicadas de las oraciones en el archivo, cada oración escrita en una línea separada?

gracias

Tengo estas oraciones en archivo

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

la salida esperada debe ser

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

Respuestas

1 dawg Dec 08 2020 at 01:28

Tu puedes hacer:

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

Huellas dactilares:

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

Para mantener la estructura de la línea:

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

Huellas dactilares:

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

Si la deduplicación es solo por línea:

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

Huellas dactilares:

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