La awk
commande ci-dessous supprime toutes les lignes en double comme expliqué ici :
awk '!seen[$0]++'
Si le texte contient des lignes vides, toutes les lignes vides sauf une seront supprimées.
Comment puis-je conserver toutes les lignes vides tout en supprimant toutes les lignes en double non vides, en utilisant uniquement awk
? Veuillez également inclure une brève explication.
Tout ce que vous avez à faire est de vérifier d'abord une ligne vide (vraiment vide ou juste vide).
la source
Voici une autre
awk
solution, similaire à la réponse de @ Thor, moins concise mais plus efficace:Avec cela, nous vérifions seulement qu'il
a[$0]
existe ou non. Sinon, initialisez-le puis imprimez. Dans ce cas, nous n'avons aucune référence, affectation àa[$0]
si elle existait.la source