Subject: Re: bug#23268: sort ant uniq bug report

From: Assaf Gordon <[email-masked]>
Date: Mon, 11 Apr 2016 11:52:18 -0400

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