El siguiente awkcomando 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
awksolució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