On 4/4/07, Ken Irving <[EMAIL PROTECTED]> wrote:

On Tue, Apr 03, 2007 at 08:19:10PM +0800, Jeff Zhang wrote:
> I have a simple txt file, like:
> ...
> a a
> aa a
> b b
> ba b
> ...
>
> I want to just keep the lines that first appeared in column 2 and delete
the follow lines that
> contain duplicated ones in column 2.
> then it will like:
> ...
> a a
> b b
> ...
>
> I've tried `uniq -f1`  but it didn't work.

awk's associative arrays (or perl's hashes) are good for this
sort of thing, e.g.,

  $ awk '!seen[$2]{print; seen[$2]=1}' < file

awk scans input line by line, checks for match condition(s), and
performs the associated actions.  Here, if the 2nd column value hasn't
been seen, print it and record it as seen.

--
Ken Irving

got it!
This is more simple :)

Reply via email to