Extract Unique Values from file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Extract Unique Values from file
# 1  
Old 08-31-2009
Question Extract Unique Values from file

Hello all,

I have a file with following sample data

2009-08-26 05:32:01.65 spid5 Process ID 86:214 owns resources that are blocking processes on Scheduler 0.
2009-08-26 05:32:01.65 spid5 Process ID 86:214 owns resources that are blocking processes on Scheduler 0.
2009-08-26 05:32:01.65 spid5 Process ID 84:127 owns resources that are blocking processes on Scheduler 2.
2009-08-26 09:49:53.46 spid5 Process ID 86:214 owns resources that are blocking processes on Scheduler 0.
2009-08-26 15:51:28.51 spid5 Process ID 102:17 owns resources that are blocking processes on Scheduler 12.
2009-08-26 15:51:28.51 spid5 Process ID 102:17 owns resources that are blocking processes on Scheduler 12.
2009-08-26 15:51:28.51 spid5 Process ID 102:17 owns resources that are blocking processes on Scheduler 12.


I need to extract the unique Process IDs

So the output should be { though the order does not matter }

86
84
102

Its the unique values occuring between "Process ID" and the ":" on each line excluding the blank white space after ID . Process ID 102:

Any suggestions ?Smilie
# 2  
Old 08-31-2009
One of the possibilities:
Code:
sed -e's/^.*Process ID \([0-9]*\):.*$/\1/' samplefile |sort -nu

or, using cut
Code:
cut -c41- samplefile |cut -d: -f1|sort -nu


Last edited by Scrutinizer; 08-31-2009 at 08:17 PM..
# 3  
Old 08-31-2009
Another possible way,

Code:
perl -ne  'print "$1\n" if /Process ID (\d+):\d+ / && !$_[$1]++' file

# 4  
Old 09-01-2009
Thank you all Scrutiniser and Rubin for your wonderful responses. It is incredible what can be done with shell scripting though it is very crytic.

Just a quick one.

How to get the above ouput as a CSV comma seperated list ?

So it would be : 84,86,102
# 5  
Old 09-01-2009
Quote:
Originally Posted by simonsimon
...
How to get the above ouput as a CSV comma seperated list ?

So it would be : 84,86,102

Given your input, one way would be:

Code:
$ perl -ne  'print $s=$s?",".$1:$1 if /Process ID (\d+):\d+ / && !$_[$1]++; print "\n" if eof' file
86,84,102


Last edited by rubin; 09-01-2009 at 03:07 PM.. Reason: trimmed it a bit
# 6  
Old 09-01-2009
Or you can append
Code:
|xargs|tr " " ","

to the commands above or, using sed:
Code:
|xargs|sed -e s'/ /,/g'

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using grep and a parameter file to return unique values

Hello Everyone! I have updated the first post so that my intentions are easier to understand, and also attached sample files (post #18). I have over 500 text files in a directory. Over 1 GB of data. The data in those files is organised in lines: My intention is to return one line per... (23 Replies)
Discussion started by: clippertm
23 Replies

2. Shell Programming and Scripting

Extracting unique values of a column from a feed file

Hi Folks, I have the below feed file named abc1.txt in which you can see there is a title and below is the respective values in the rows and it is completely pipe delimited file ,. ... (4 Replies)
Discussion started by: punpun66
4 Replies

3. Shell Programming and Scripting

Extract UNIque records from File

Hi, I have a file with 20GB Pipe Delimited file where i have too many duplicate records. I need an awk script to extract the unique records from the file and put it into another file. Kindly help. Thanks, Arun (1 Reply)
Discussion started by: Arun Mishra
1 Replies

4. Shell Programming and Scripting

List unique values and count instances in .csv file

I need to take the second column of a .csv file and count the number of instances of each unique value in that same second column. I'd like the output to be value,count sorted by most instances. Thanks for any guidance! Data example: 317476,317756,0 816063,318861,0 313123,319091,0... (4 Replies)
Discussion started by: batcho
4 Replies

5. Shell Programming and Scripting

Create shell script to extract unique information from one file to a new file.

Hi to all, I got this content/pattern from file http.log.20110808.gz mail1 httpd: Account Notice: close igchung@abc.com 2011/8/7 7:37:36 0:00:03 0 0 1 mail1 httpd: Account Information: login sastria9@abc.com proxy sid=gFp4DLm5HnU mail1 httpd: Account Notice: close sastria9@abc.com... (16 Replies)
Discussion started by: Mr_47
16 Replies

6. Shell Programming and Scripting

How to count Unique Values from a file.

Hi I have the following info in a file - <Cell id="25D"/> <Cell id="26A"/> <Cell id="26B"/> <Cell id="26C"/> <Cell id="27A"/> <Cell id="27B"/> <Cell id="27C"/> <Cell id="28A"/> I would like to know how would you go about counting all... (4 Replies)
Discussion started by: Prega
4 Replies

7. Shell Programming and Scripting

extract unique pattern from large text file

Hi All, I am trying to extract data from a large text file , I want to extract lines which contains a five digit number followed by a hyphen , like 12345- , i tried with egrep ,eg : egrep "+" text.txt but which returns all the lines which contains any number of digits followed by hyhen ,... (19 Replies)
Discussion started by: shijujoe
19 Replies

8. UNIX Desktop Questions & Answers

Fetching unique values from file

After giving grep -A4 "feature 1," <file name> I have extracted the following text feature 1, subfeat 2, type 1, subtype 5, dump '30352f30312f323030392031313a33303a3337'H -- "05/01/2009 11:30:37" -- -- ... (1 Reply)
Discussion started by: shivi707
1 Replies

9. Shell Programming and Scripting

Unique values from a Terabyte File

Hi, I have been dealing with a files only a few gigs until now and was able to get out by using the sort utility. But now, I have a terabyte file which I want to filter out unique values from. I have a server having 8 processor and 16GB RAM with a 5 TB hdd. Is it worthwhile trying to use... (6 Replies)
Discussion started by: Legend986
6 Replies

10. Shell Programming and Scripting

Getting Unique values in a file

Hi, I have a file like this: Some_String_Here 123 123 123 321 321 321 3432 3221 557 886 321 321 I would like to find only the unique values in the files and get the following output: Some_String_Here 123 321 3432 3221 557 886 I am trying to get this done using awk. Can someone please... (5 Replies)
Discussion started by: Legend986
5 Replies
Login or Register to Ask a Question