El siguiente awk
comando elimina todas las líneas duplicadas como se explica aquí :
awk '!seen[$0]++'
Si el texto contiene líneas vacías, se eliminarán todas menos una línea vacía.
¿Cómo puedo mantener todas las líneas vacías mientras elimino todas las líneas duplicadas no vacías, usando solo awk
? Por favor, también incluya una breve explicación.
Todo lo que tiene que hacer es buscar primero una línea vacía (realmente vacía o simplemente en blanco).
fuente
Aquí hay otra
awk
solución, similar a la respuesta de @ Thor, menos concisa pero más eficiente:Con esto, solo verificamos si
a[$0]
ha existido o no. Si no, inicializándolo, luego imprima. En este caso, no tenemos ninguna referencia, asignación aa[$0]
si existiera.fuente