uniq lê o arquivo linha por linha e considera apenas uma duplicata quando a linha atual é exatamente igual à última linha,
ou seja, para um arquivo de entrada como este,
1
1
2
1
Você terá uma saída como essa,
1
2
1
Para usá-lo, você pode executá-lo por meio de um canal, por exemplo
command | uniq
Ou receba a entrada de um arquivo como este,
uniq < input > output