tag 23268 notabug
close 23268
thanks

Hello,

On 04/11/2016 06:49 AM, 126 wrote:
hello, Gentleman
when I use sort and uniq, and input like this below, I got wrong output:
[...]
"|sort -u
[...]
no result when I use `uniq -u`

This is due to wrong usage of 'uniq -u'.

The meaning of '-u' in 'uniq' is subtly different than '-u' in 'sort':

In 'sort', it means "print each line once" i.e. removing duplicates.
In 'uniq', it means "print only unique lines" i.e. lines which appear only once.

The equivalent of 'sort -u' is 'sort|uniq'.

Since all lines in your input had duplicates, 'uniq -u' printed none.

The following will demonstrate:

    $ printf "a\nb\na\nc\nb\n"
    a
    b
    a
    c
    b

    $ printf "a\nb\na\nc\nb\n" | sort -u
     a
    b
    c

    $ printf "a\nb\na\nc\nb\n" | sort | uniq
    a
    b
    c

    $ printf "a\nb\na\nc\nb\n" | sort | uniq -u
    c


As such I'm closing this bug, but discussion can continue by replying to this 
thread.
regards,
 - assaf




Reply via email to