Awk to print distinct col values


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk to print distinct col values
# 8  
Old 08-14-2008
Hi...
Well, once after the condition is met, is this the best way to print specific cols like $1 or $4 or whatever....

awk -F, '!($2<10)' unique | awk -F, '{print $1,$2}'

-Anduzzi
# 9  
Old 08-14-2008
Quote:
Originally Posted by anduzzi
Hi...
Well, once after the condition is met, is this the best way to print specific cols like $1 or $4 or whatever....

awk -F, '!($2<10)' unique | awk -F, '{print $1,$2}'

-Anduzzi
You can get that by lightly tweaking era's awk solution.
Code:
awk -F , '{ a[$2] = $1 } END { for (b in a) { if (b+0 < 10) print a[b], b } }' file

# 10  
Old 08-14-2008
Confused !!

Hi Shamrock,
I am lilttle confused with ur solution.
Could you please explain what exactly your one-liner does?...
Also, how would you customize your one-liner to print multiple desired cols like $1, $10,$100 once the condition is met.

-Anduzzi.
# 11  
Old 08-14-2008
Quote:
Originally Posted by anduzzi
Hi Shamrock,
I am lilttle confused with ur solution.
Could you please explain what exactly your one-liner does?...
Also, how would you customize your one-liner to print multiple desired cols like $1, $10,$100 once the condition is met.

-Anduzzi.
It stores unique values in col2 alongwith its counterparts from col1
Code:
a[$2] = $1

After going through the entire file it prints out only those records where col2 < 10
Code:
if (b+0 < 10) print a[b], b

"Store first Print later" to print mutliple desired cols like $1, $10, $100 once the condition is met append them to the assignment list.
Code:
a[$2] = $1 FS $10 FS $100


Last edited by shamrock; 08-14-2008 at 01:49 PM..
# 12  
Old 08-15-2008
Shamrock,
Thank you very much for the explanation.
Got one more question...
How do we replace a NULL with a SPACE using awk?...
In other words, how does awk interpret Nulls and Spaces?...wondering if it can do this replacement in hexadecimal(%x) mode...pls suggest !!!

Thanks !!!
# 13  
Old 08-15-2008
How about some sample data input and output...that would help a great deal.
# 14  
Old 08-15-2008
oops...no data

Hi,
I was trying to help my mate on this issue and unfortunately, he is off today and I dont have the test data corresponding to this..
I can provide the data next week.

Thanks for a quick turn around though.
-Anduzzi
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Emergency UNIX and Linux Support

Read values in each col starting 3rd row.Print occurrence value.

Hello Friends, Hope all are doing fine. Here is a tricky issue. my input file is like this 07 10 14 20 21 03 15 27 30 32 01 10 11 19 30 02 06 14 15 17 01 06 20 25 29 Logic: 1. Please print another column as "0-0-0-0-0" for the first and second rows. 2. Read the first column... (4 Replies)
Discussion started by: jacobs.smith
4 Replies

2. Shell Programming and Scripting

Modifying col values based on another col

Hi, Please help with this. I have several excel files (with and .xlsx format) with 10-15 columns each. They all have the same type of data but the columns are not ordered in the same way. Here is a 3 column example. What I want to do add the alphabet from column 2 to column 3, provided... (9 Replies)
Discussion started by: newbie83
9 Replies

3. Shell Programming and Scripting

Find distinct values

Hi, I have two files of the following format file1 chr1:345-456 chr2:123-456 chr2:455-678 chr3:456-789 chr3:444-555 file2 chr1:345-456 chr2:123-456 chr3:456-789 output (2 Replies)
Discussion started by: jacobs.smith
2 Replies

4. UNIX for Dummies Questions & Answers

count number of distinct values in each column with awk

Hi ! input: A|B|C|D A|F|C|E A|B|I|C A|T|I|B As the title of the thread says, I would need to get: 1|3|2|4 I tried different variants of this command, but I don't manage to obtain what I need: gawk 'BEGIN{FS=OFS="|"}{for(i=1; i<=NF; i++) a++} END {for (b in a) print b}' input ... (2 Replies)
Discussion started by: beca123456
2 Replies

5. UNIX for Advanced & Expert Users

Print line based on highest value of col (B) and repetion of values in col (A)

Hello everyone, I am writing a script to process data from the ATP world tour. I have a file which contains: t=540 y=2011 r=1 p=N409 t=540 y=2011 r=2 p=N409 t=540 y=2011 r=3 p=N409 t=540 y=2011 r=4 p=N409 t=520 y=2011 r=1 p=N409 t=520 y=2011 r=2 p=N409 t=520 y=2011 r=3 p=N409 The... (4 Replies)
Discussion started by: imahmoud
4 Replies

6. Shell Programming and Scripting

average of distinct values with awk

Hi guys, I am not an expert in shell and I need help with awk command. I have a file with values like 200 1 1 200 7 2 200 6 3 200 5 4 300 3 1 300 7 2 300 6 3 300 4 4 I need resulting file with averages of... (3 Replies)
Discussion started by: saif
3 Replies

7. Shell Programming and Scripting

distinct values of all the fields

I am a beginner to scripting, please help me in this regard. How do I create a script that provides a count of distinct values of all the fields in the pipe delimited file ? I have 20 different files with multiple columns in each file. I needed to write a generic script where I give the number... (2 Replies)
Discussion started by: vukkusila
2 Replies

8. UNIX for Dummies Questions & Answers

distinct values of all the fields

I am a beginner to scripting, please help me in this regard. How do I create a script that provides a count of distinct values of all the fields in the pipe delimited file ? I have 20 different files with multiple columns in each file. I needed to write a generic script where I give the number... (1 Reply)
Discussion started by: vukkusila
1 Replies

9. Shell Programming and Scripting

grep distinct values

this is a little more complex than that. I have a text file and I need to find all the distinct words that appear in a line after the word TABLESPACE when I grep for just the word tablespace, I get: how do i parse this a little better so i have a smaller file to read? This is just an... (4 Replies)
Discussion started by: guessingo
4 Replies

10. Shell Programming and Scripting

Getting Distinct values from second field in a file....

Hi I have a pipe delimited file. I am trying to grab the DISTINCT value from the second field. The file is something like: 1233|apple|ron 1234|apple|elephant 1235|egg|man the output I am trying to get from second field is apple,egg (apple coming only once) Thanks simi (4 Replies)
Discussion started by: simi28
4 Replies
Login or Register to Ask a Question