awk or uniq


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers awk or uniq
# 1  
Old 11-19-2015
awk or uniq

Hi Help,

I have a file which looks like

Code:
1 20 30 40 50 60 6
2 20 30 40 50 60 8
7 20 30 40 50 60 7
4 30 40 50 60 70 8
5 30 40 50 60 70 9
2 30 40 50 60 70 8

I want the o/p as

Code:
1 20 30 40 50 60 6
4 30 40 50 60 70 8

Is there a way I can use uniq command or awk to do this?

Thanks,
# 2  
Old 11-19-2015
Quote:
Originally Posted by Indra2011
Is there a way I can use uniq command or awk to do this?
You cannot use the uniq command for this because uniq filters lines so that only unique ones (hence the name) remain. As all your lines are unique, because they all differ in some regards uniq will not give you what you want.

awk might be able to give you the result you want once you can tell us what exactly the rules for your intended filtering are. I might be slow but i do not get it from a few example lines and two lines of expected output. Depending on these rules you might also take sort into consideration as a probably helpful tool.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
# 3  
Old 11-19-2015
Thanks Bakunin,

Code:
For, NR=1,2,3; $2,$3,$4,$5,$6

are exact same so I would grab the
Code:
NR==1

only.
Code:
For, NR=4,5,6; $2,$3,$4,$5,$6

are exact same so I would grab the
Code:
NR==4

only

It looks complicated.
Thanks,
# 4  
Old 11-19-2015
Code:
awk '!A[$2,$3,$4,$5,$6]++' file

This User Gave Thanks to Yoda For This Post:
# 5  
Old 11-19-2015
Hi Yoda,
I am not sure why am I getting an error msg 'A[ event not found'.
# 6  
Old 11-19-2015
Quote:
Originally Posted by Indra2011
It looks complicated.
Complicated is OK. Usually the complication goes away after correctly describing the problem. Just as a general suggestion: more than 30 years in IT have proven to me, over and over, that once a problem is correctly defined and stated the solution is in most cases obvious and a direct outcome of the problem definition.

Coming back from general aspects to your problem at hand: you want for every group of lines which have the same values in the second, thrid, fourth, fifth and sixth column only the first line to be printed and all others suppressed yes?

Question: is white space delimiting the columns to be considered, i.e are the lines

Code:
1 20 30 40 50 60 6
1 20  30 40 50 60 6

considered to be equal or not? Or can't that happen?

Yodas solution, for instance, may be working for you or not, depending on your answer to this question.

Are there leading/trailing whitespace in the lines? Need they to be taken into account or not? Will the white space always be formed by the same character or might there be space and tabs mixed? Are your values always numeric or might they be alphanumeric?

bakunin
This User Gave Thanks to bakunin For This Post:
# 7  
Old 11-19-2015
Using sort:

Code:
sort -m -u -k 2,6
1 20 30 40 50 60 6
4 30 40 50 60 70 8

This User Gave Thanks to mjf For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk compare and keep uniq

Hi all I was wondering if you may help me in resolving an issue. In particular I have a file like this: the ... represent different string and what I wrote Cur or Ent are the constant. Well, what I would like to obtain is a file in which are reported only the ID in which the second column... (6 Replies)
Discussion started by: giuliangiuseppe
6 Replies

2. Shell Programming and Scripting

Sort uniq or awk

Hi again, I have files with the following contents datetime,ip1,port1,ip2,port2,number How would I find out how many times ip1 field shows up a particular file? Then how would I find out how many time ip1 and port 2 shows up? Please mind the file may contain 100k lines. (8 Replies)
Discussion started by: LDHB2012
8 Replies

3. Shell Programming and Scripting

Rewriting GNU uniq in awk

Within a shell script I use uniq -w 16 -D in order to process all lines in which the first 16 characters are duplicated. Now I want to also run that script on a BSD based system where the included version of uniq does not support the -w (--check-chars) option. To get around this I have... (7 Replies)
Discussion started by: mij
7 Replies

4. Shell Programming and Scripting

awk uniq and longest string of a column as index

I met a challenge to filter ~70 millions of sequence rows and I want using awk with conditions: 1) longest string of each pattern in column 2, ignore any sub-string, as the index; 2) all the unique patterns after 1); 3) print the whole row; input: 1 ABCDEFGHI longest_sequence1 2 ABCDEFGH... (12 Replies)
Discussion started by: yifangt
12 Replies

5. Shell Programming and Scripting

awk - getting uniq count on multiple col

Hi My file have 7 column, FIle is pipe delimed Col1|Col2|col3|Col4|col5|Col6|Col7 I want to find out uniq record count on col3, col4 and col2 ( same order) how can I achieve it. ex 1|3|A|V|C|1|1 1|3|A|V|C|1|1 1|4|A|V|C|1|1 Output should be FREQ|A|V|3|2 FREQ|A|V|4|1 Here... (5 Replies)
Discussion started by: sanranad
5 Replies

6. Shell Programming and Scripting

[uniq + awk?] How to remove duplicate blocks of lines in files?

Hello again, I am wanting to remove all duplicate blocks of XML code in a file. This is an example: input: <string-array name="threeItems"> <item>item1</item> <item>item2</item> <item>item3</item> </string-array> <string-array name="twoItems"> <item>item1</item> <item>item2</item>... (19 Replies)
Discussion started by: raidzero
19 Replies

7. Shell Programming and Scripting

Text Proccessing with sort,uniq,awk

Hello, I have a log file with the following input: X , ID , Date, Time, Y 01,01368,2010-12-02,09:07:00,Pass 01,01368,2010-12-02,10:54:00,Pass 01,01368,2010-12-02,13:07:04,Pass 01,01368,2010-12-02,18:54:01,Pass 01,01368,2010-12-03,09:02:00,Pass 01,01368,2010-12-03,13:53:00,Pass... (12 Replies)
Discussion started by: rollyah
12 Replies

8. Shell Programming and Scripting

Help with uniq or awk??

Hi, my dilemna is this: example i got a file of fruit.txt which contains: Apple 6 Apple_new 7 old_orange 9 orange 10 Is there any way for me to have an output of Apple 13 Orange 19 using shell script: (6 Replies)
Discussion started by: shinoman28
6 Replies

9. Shell Programming and Scripting

How to replicate data using Uniq or awk

Hi, I have this scenario; where there are two classes:- apple and orange. 1,2,3,4,5,6,apple 1,1,0,4,2,3,apple 1,3,3,3,3,4,apple 1,1,1,1,1,1,orange 1,2,3,1,1,1,orange Basically for apple, i have 3 entries in the file, and for orange, I have 2 entries. Im trying to edit the file and find... (5 Replies)
Discussion started by: ahjiefreak
5 Replies

10. Shell Programming and Scripting

using uniq and awk??

I have a file that is populated: hits/books.hits:143.217.64.204 Thu Sep 21 22:24:57 GMT 2006 hits/books.hits:62.145.39.14 Fri Sep 22 00:38:32 GMT 2006 hits/books.hits:81.140.86.170 Fri Sep 22 08:45:26 GMT 2006 hits/books.hits:81.140.86.170 Fri Sep 22 09:13:57 GMT... (13 Replies)
Discussion started by: amatuer_lee_3
13 Replies
Login or Register to Ask a Question