minimum number of unique key


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting minimum number of unique key
# 1  
Old 09-30-2009
minimum number of unique key

input
Code:
a    1
a    2
a    -1
b    1
b    2
b    3

output
Code:
a    -1
b    1

Thanx

---------- Post updated at 09:42 PM ---------- Previous update was at 09:10 PM ----------

Ok I managed it
Code:
pc290 ~/Desktop
$ awk ' NR {if(a[$1]=="") a[$1]=$2;if(a[$1]>=$2) {a[$1]=$2; sa[$1]=$0;}}NR&&$NR>x{x=$NR;line=$0}END{for(i in sa){print sa[i]};}' input
a       -1
b       1


Last edited by repinementer; 09-30-2009 at 02:57 AM..
# 2  
Old 09-30-2009
Or like this:
Code:
awk '{a[$1]=($2<a[$1]||!a[$1])?$2:a[$1]}END{for(i in a) print i,a[i]}' file

# 3  
Old 09-30-2009
Code:
awk '{if(a[$1]==""||a[$1]>=$2)a[$1]=$2}END{for (i in a)print i "\t" a[i]}' infile

# 4  
Old 09-30-2009
nice ones. I have to agree my code is ugly compare to your codes.

AwkHails
# 5  
Old 09-30-2009
Code:
sort -k1,2r -n urfile |awk '{a[$1]=$2} END {for (i in a) print i,a[i]}'

# 6  
Old 09-30-2009
could any one explain ripat code plz
thanx
# 7  
Old 10-01-2009
Sure:

Code:
# execute this block for every line
{
    # we will work on a array which will have $1 as key and $2
    # as value only if that $2 is lower than previous a[$1] value.
    # ternary conditional: <condition> ? <value if true> : <value if false>
    # if $2 is less than the current value of a[$1] or if a[$1] 
    # doesn't exist, then we assign $2 to it else
    # we give its own value (ie no change))
    a[$1] = ($2<a[$1]||!a[$1]) ? $2 : a[$1]
}

# once at the end of the file, execute this block
END{
    # traverse array a and print its key and value
    for(i in a) print i,a[i]
}

It is exactly the same idea as with the other awk solutions. It is only written differently.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Unique Number Identifying

I'm trying to solve the below problem for a number: Enter a number and if it has all unique digits print unique number else non-unique number. Eg: Input=123; Output=unique number Input=112; Output=Non-unique number The thing i tried is splitting the number into digits by using % operator... (2 Replies)
Discussion started by: Gautham
2 Replies

2. UNIX for Dummies Questions & Answers

Absolute minimum value of a number using awk

Hi, I have got a file in the following format: 4300 23695 4305 03591 4400 125368 I need to sort this file to find the minimum absolute value of the numbers starting from 6th pos, so the expected output is:- 4300 23569 4305 01359 4400 123568 I tried to cut out the file from 6th... (7 Replies)
Discussion started by: roy121
7 Replies

3. Shell Programming and Scripting

grep - match files containing minimum number of pattern matches

I want to search a bunch of files and list only those containing a minimum number of pattern matches. So if I want to identify files containing 3 (or more) instances of the pattern "said:" and I have file1 that contains the lines: He said: She said: and file2 that contains the lines: He... (3 Replies)
Discussion started by: stumpyuk
3 Replies

4. Linux

What is the minimum number of partitions you need to install Linux?

I think its 3. Just to know if I am correct. / /boot swap :confused: (2 Replies)
Discussion started by: nitin09
2 Replies

5. Shell Programming and Scripting

Find the minimum number

Input 10 8 20 8 10 9 20 9 10 12 20 19 10 10 20 40 Output1 10 8 2 20 8 12 10 9 1 20 9 11 10 12 -2 20 19 1 10 10 0 20 40 -20 Output2 10 9 ... (0 Replies)
Discussion started by: repinementer
0 Replies

6. Shell Programming and Scripting

Need to find Unique not used Number

Wrote a script to create a hidden account in OS X. It works perfect but I need to check if the UID is already in use before I tried to create the account. dscl . list /Users UniqueID | awk '{print $2}' | while read UIDS do if ; then echo "UID Is Already in USE" i=`expr "$2" - 1` echo... (4 Replies)
Discussion started by: elbombillo
4 Replies

7. Shell Programming and Scripting

ksh scripting: Extract 1 most recent record for unique key

I'm loading multiple delimited files into an Oracle DB using sqlldr on Unix. I would like to get only the most recent record per each unique key. There may be multiple updates for each key, but I only want the most recent one. There is a date column in my delimited files, so I'm using cat to... (2 Replies)
Discussion started by: OPTIMUS_prime
2 Replies

8. Shell Programming and Scripting

display unique number

Hi, how i can display all the unique number from my random number script below; #!/usr/bin/perl use strict; my @alphanum = ( 'A' .. 'Z', 'a' .. 'z', 0 .. 9); my $random = join('', map($alphanum,(1..5))); print "$random\n"; Thank You. (1 Reply)
Discussion started by: malaysoul
1 Replies

9. Shell Programming and Scripting

unique number for a date

Hello, In korn-shell, how can I do to have an unique number for a date done. I want to use it to have the number of days between two dates. Thanks in advance. (4 Replies)
Discussion started by: madmat
4 Replies

10. UNIX for Dummies Questions & Answers

Directory Inode Number Not Unique

Hi, I know that inode for each file is unique, but is it the for the directory? So far I found different directories has the same inode nubmer when you do ls -i, could some one explain why? Thanks a lot. (9 Replies)
Discussion started by: nj302
9 Replies
Login or Register to Ask a Question