Re: uniq without sort <-------------- GURU NEEDED

Re: uniq without sort <-------------- GURU NEEDED

am 25.01.2008 11:39:23 von William James

On Jan 24, 8:45 pm, gnuist...@gmail.com wrote:
> This is a tough problem, and needs a guru.
>
> I know it is very easy to find uniq or non-uniq lines if you scramble
> all of them and sort them. Its trivially
>
> echo -e "a\nc\nd\nb\nc\nd" | sort | uniq
>
> $ echo -e "a\nc\nd\nb\nc\nd"
> a
> c
> d
> b
> c
> d
>
> $ echo -e "a\nc\nd\nb\nc\nd"|sort|uniq
> a
> b
> c
> d
>
> So it is TRIVIAL with sort.
>
> I want uniq without sorting the initial order.
>
> The algorithm is this. For every line, look above if there is another
> line like it. If so, then ignore it. If not, then output it. I am
> sure, I can spend some time to write this in C. But what is the
> solution using shell ? This way I can get an output that preserves the
> order of first occurrence. It is needed in many problems.
>
> Thanks to the star who can help
> gnuist

ruby -e 'puts ARGF.to_a.uniq' the_file

or the equivalent

ruby -e 'puts $<.to_a.uniq' the_file

Re: uniq without sort <-------------- GURU NEEDED

am 25.01.2008 11:50:24 von Stephane CHAZELAS

On Fri, 25 Jan 2008 02:39:23 -0800 (PST), William James wrote:
[...]
> ruby -e 'puts ARGF.to_a.uniq' the_file
[...]

zsh:

print -rl -- ${(uf)"$(
(will remove empty lines, and will output an empty line if the
file is empty).

--
Stephane