using grep for find values larger/less than | Unix Linux Forums | Shell Programming and Scripting

  Go Back    


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

using grep for find values larger/less than

Shell Programming and Scripting


Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 11-17-2009
phil_heath phil_heath is offline
Registered User
 
Join Date: May 2009
Last Activity: 11 September 2013, 10:42 PM EDT
Posts: 95
Thanks: 8
Thanked 0 Times in 0 Posts
using grep for find values larger/less than

Hi

I have been experimenting with grep to find values for a particular column that is greater than or less than certain #'s.

So my file looks like this:


Code:
name   -2  2
name1 -2  2
name2 -1  4
name3  3  3

So I want to find rows with values less than or equal to -2 and those greater than or equal to 3 (for column2 only)

Then the output would look like this:


Code:
name   -2  2
name1 -2  3
name3  3  3

I tried grep but I am very lost with it..

thanks
Sponsored Links
    #2  
Old 11-17-2009
Scott's Avatar
Scott Scott is offline Forum Staff  
Administrator
 
Join Date: Jun 2009
Last Activity: 27 November 2014, 11:50 AM EST
Location: Zürich
Posts: 8,489
Thanks: 333
Thanked 1,050 Times in 916 Posts
Horses for courses.

Why bust a gut with grep when other tools make light work of this sort of thing?
Sponsored Links
    #3  
Old 11-17-2009
jim mcnamara jim mcnamara is offline Forum Staff  
...@...
 
Join Date: Feb 2004
Last Activity: 27 November 2014, 8:24 AM EST
Location: NM
Posts: 10,283
Thanks: 288
Thanked 815 Times in 757 Posts
example awk oneliner:

Code:
awk ' $2<=-2 || $2>=3' myfile

    #4  
Old 11-18-2009
phil_heath phil_heath is offline
Registered User
 
Join Date: May 2009
Last Activity: 11 September 2013, 10:42 PM EDT
Posts: 95
Thanks: 8
Thanked 0 Times in 0 Posts
hi thank you for the solution. It works..

what if I want to find something within a range lets say between -2 and 3. Obviously the directions of the arrows wont work.

thanks
Sponsored Links
    #5  
Old 11-18-2009
Scrutinizer's Avatar
Scrutinizer Scrutinizer is online now Forum Staff  
Moderator
 
Join Date: Nov 2008
Last Activity: 27 November 2014, 1:08 PM EST
Location: Amsterdam
Posts: 9,623
Thanks: 294
Thanked 2,455 Times in 2,203 Posts
Hi Phil, have you tried reversing the comparison operators? You can find out from Jim's solution what they look like.
Sponsored Links
    #6  
Old 11-18-2009
phil_heath phil_heath is offline
Registered User
 
Join Date: May 2009
Last Activity: 11 September 2013, 10:42 PM EDT
Posts: 95
Thanks: 8
Thanked 0 Times in 0 Posts
Hey,

yeah I tried that

but that will give everything greater than -3 and everything less than 2.


Code:
5
4
3
2
1
0
-1
-2
-3
-4
-5

So lets I wanted the range of values to be -3 to 2 then the values being pulled out would be


Code:
2
1
0
-1
-2
-3

but instead if I only reversed teh arrows, I get everything greater than -3 and everything less than 2

---------- Post updated at 05:32 PM ---------- Previous update was at 05:14 PM ----------


Code:
awk ' $2>=-2 && $2<=3'

this seems to work i think...

Last edited by phil_heath; 11-18-2009 at 06:40 PM..
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
How to find a file whick is consuming larger disk space in file system lokeshpashine UNIX for Dummies Questions & Answers 6 04-04-2009 03:52 AM
grep two values together. tushar_tus Shell Programming and Scripting 1 02-24-2009 06:40 AM
using a vaiable parameters and values to find and tar jjminkle Shell Programming and Scripting 1 05-02-2008 06:12 PM
grep using ASCII values sriksama UNIX for Dummies Questions & Answers 1 01-09-2008 11:26 AM
grep a list of values jolan_louve Shell Programming and Scripting 3 12-06-2006 02:18 AM



All times are GMT -4. The time now is 02:14 PM.