sort
não mostraria nada, porque sort
não pode funcionar nos fluxos de dados que chegam no STDIN que não possuem EOF (End Of File).
sort
só funcionará se o mycmd
terminar em algum ponto, então sort
verá o EOF e trabalhará no conteúdo.
Para obter conteúdo (s) exclusivo (s) em um fluxo de dados, você pode usar awk
com uma matriz para armazenar as contagens de registros:
mycmd | awk '!seen[$0]++'
seen[$0]
verifica se a linha é vista na matriz seen
obtendo seu valor. Se a linha não estiver presente, seen[$0]
retornará 0
(false), então o teste de negação ( !
) se torna verdadeiro e a linha é impressa (ação padrão). ++
incrementa o valor em 1, então da próxima vez o teste de negação seria falso para qualquer linha duplicada.