O awk
comando abaixo remove todas as linhas duplicadas, conforme explicado aqui :
awk '!seen[$0]++'
Se o texto contiver linhas vazias, todas, exceto uma linha vazia, serão excluídas.
Como posso manter todas as linhas vazias enquanto excluo todas as linhas duplicadas não vazias, usando apenas awk
? Por favor, inclua também uma breve explicação.
Tudo o que você precisa fazer é procurar uma linha vazia (realmente vazia ou apenas em branco) primeiro.
fonte
Aqui está outra
awk
solução, semelhante à resposta de @ Thor, menos concisa, mas mais eficiente:Com isso, apenas verificamos
a[$0]
se existe ou não. Caso contrário, inicialize-o e imprima. Nesse caso, não temos nenhuma referência, atribuição,a[$0]
se ela existia.fonte