943,929 Members | Top Members by Rank

Ad:
Apr 2nd, 2008
0

Urgent: Help on grep the nearest value using bash script

Expand Post »
Hi,

I have a list of data in text files with :-
ColA ColB ColC ColD ColE ColF
12 122 2280 30 0.012987 1.776
13 118 2280 30 0.012987 1.954
14 115 2620 30 0.011321 2.131
15 113 2654 30 0.011177 2.309
16 145 1882 25 0.013110 2.487
17 112 2817 30 0.010537 2.664
18 126 2833 30 0.010479 2.842
19 111 2833 30 0.010479 3.020
16 145 1882 25 0.013110 2.487
17 112 2817 30 0.010537 2.664

How could I grep the nearest number to <=3.000 using bash script?

Means in the end i would like to isolate numbers in ColF which last seen the value <= 3.000 which is

18 126 2833 30 0.010479 2.842


Please help. Thanks.
Last edited by ahjiefreak; Apr 2nd, 2008 at 1:48 am. Reason: Confusion of the question
Reputation Points: 10
Solved Threads: 1
Newbie Poster
ahjiefreak is offline Offline
11 posts
since Dec 2007
Apr 3rd, 2008
0

Re: Urgent: Help on grep the nearest value using bash script

Hey there,

This was bugging me all last night, and I finally figured out what my problem was

This should do the trick for you:

Shell Scripting Syntax (Toggle Plain Text)
  1. awk 'BEGIN {var=3; highest=0}{ j = $NF;if ( j < var && j > highest ) { highest=j} } END {print highest}' YourInputFile

That gave me

2.842

from the text you pasted in this post. There's probably a more elegant solution out there, but this'll do the trick for now

Best wishes

, Mike
Reputation Points: 102
Solved Threads: 47
Posting Whiz
eggi is offline Offline
399 posts
since Oct 2007
Apr 3rd, 2008
0

Re: Urgent: Help on grep the nearest value using bash script

Actually, oops, you can change the

Shell Scripting Syntax (Toggle Plain Text)
  1. j < var

part to

Shell Scripting Syntax (Toggle Plain Text)
  1. j <= var

just noticed that

Shell Scripting Syntax (Toggle Plain Text)
  1. awk 'BEGIN {var=3; highest=0}{ j = $NF;if ( j <= var && j > highest ) { highest=j} } END {print highest}' YourInputFile

, Mike
Reputation Points: 102
Solved Threads: 47
Posting Whiz
eggi is offline Offline
399 posts
since Oct 2007
Apr 5th, 2008
0

Re: Urgent: Help on grep the nearest value using bash script

Shell Scripting Syntax (Toggle Plain Text)
  1. awk '$NF <=3 {a[NR]=$NF;c[a[NR]]=$0}
  2. END{
  3. n=asort(a,b)
  4. print c[b[n]]
  5. }' file
output:
Shell Scripting Syntax (Toggle Plain Text)
  1. # ./test.sh
  2. 18 126 2833 30 0.010479 2.842
Reputation Points: 75
Solved Threads: 44
Junior Poster
ghostdog74 is offline Offline
156 posts
since Apr 2006
Apr 5th, 2008
0

Re: Urgent: Help on grep the nearest value using bash script

I knew there was a better answer out there

GhostDog74, you are an awk master! If you don't mind me posting this here, could you point me to a good awk tutorial on the web. I'd like to better understand a lot of programmatical aspects of it.

Thanks in advance and good stuff

Cheers,

Mike
Reputation Points: 102
Solved Threads: 47
Posting Whiz
eggi is offline Offline
399 posts
since Oct 2007
Apr 5th, 2008
0

Re: Urgent: Help on grep the nearest value using bash script

Click to Expand / Collapse  Quote originally posted by eggi ...

GhostDog74, you are an awk master!
no i am not. there are many who are better


Quote ...
If you don't mind me posting this here, could you point me to a good awk tutorial on the web. I'd like to better understand a lot of programmatical aspects of it.
this is where i learn AWK/SED. Also grymoire is worth a look
Reputation Points: 75
Solved Threads: 44
Junior Poster
ghostdog74 is offline Offline
156 posts
since Apr 2006
Apr 6th, 2008
0

Re: Urgent: Help on grep the nearest value using bash script

Cool,

Thank you very much I'll definitely check out these links (already adding them to my favorites).

You're very humble and come up with some excellent answers. I'm sure I'll see more in the future and I look forward to it

Thanks, again!

, Mike
Reputation Points: 102
Solved Threads: 47
Posting Whiz
eggi is offline Offline
399 posts
since Oct 2007

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Shell Scripting Forum Timeline: Awk question
Next Thread in Shell Scripting Forum Timeline: Remote machine details





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC