Если вы не хотите изменять порядок входного файла, вы можете сделать:
$ awk '!v[$0]{ print; v[$0]=1 }' input-file
или, если файл достаточно мал (менее 4 миллиардов строк, чтобы ни одна строка не повторялась 4 миллиарда раз), вы можете сделать:
$ awk '!v[$0]++' input-file
В зависимости от реализации awk вам может не понадобиться беспокоиться о том, что файл имеет длину менее 2 ^ 32 строк. Проблема заключается в том, что если вы видите одну и ту же строку 2 ^ 32 раза, вы можете переполнить целое число в значении массива, и 2 ^ 32-й экземпляр (или 2 ^ 31-я) дублирующейся строки будет выведен во второй раз. На самом деле это вряд ли проблема!