With unclear requirement and mistakes in the expected out it was difficult to write a program. There was no program was also provided so i had to write from scratch.
Try:
Code:
re_arrange_file ()
{
infile=$1
out_file=$infile"x"
>$out_file
while read line
do
set $line
if [ $# -eq 3 ]; then
key=$1
subkey=$2
min_range=$(echo $3 | cut -d"-" -f1)
max_range=$(echo $3 | cut -d"-" -f2)
else
min_range=$(echo $1 | cut -d"-" -f1)
max_range=$(echo $1 | cut -d"-" -f2)
fi
if [[ $min_range -gt $max_range ]]; then
(( min_range = $max_range + $min_range))
(( max_range = $min_range - $max_range))
(( min_range = $min_range - $max_range))
fi
echo $key $subkey $min_range $max_range >> $out_file
done < $infile
}
re_arrange_file input1
re_arrange_file input2
>out_file
in_range_count=0
out_range_count=0
file2_lin_no=0
while read line
do
set $line
key=$1
subkey=$2
min_range=$3
max_range=$4
found=0
((file2_lin_no = $file2_lin_no + 1))
file2_lin=`head -$file2_lin_no input2 | tail -1`
cat input1x | grep "$key" | grep "$subkey" > tmp
while read _key _subkey _min _max
do
if [[ ${_min} -le $min_range && ${_max} -ge $max_range ]]; then
((in_range_count = $in_range_count + 1))
echo $file2_lin "inrange"$in_range_count
found=1
break
fi
done < tmp
if [[ $found -eq 0 ]]; then
((out_range_count = $out_range_count + 1))
echo $file2_lin outofrange"$out_range_count"
fi
done < input2x
---------- Post updated at 11:32 AM ---------- Previous update was at 11:30 AM ----------
Output:
Code:
a a1 1-4 outofrange1
a a1 4-1 outofrange2
a a1 120-140 outofrange3
a a1 140-120 outofrange4
a a1 65-69 outofrange5
70-100 outofrange6
a a1 70-65 outofrange7
44-40 outofrange8
a a1 6-7 inrange1
37-57 outofrange9
63-83 outofrange10
a a1 7-8 inrange2
This is not exactly what is provided in question. But I think in question it is wrong, as many lines do not have either inrange or outofrange itself.
a a1 65-69 should be outofrange but was provided otherwise.
i would like to enter (user input) a bunch of numbers seperated by space:
10 15 20 25
and use awk to print out any lines in a file that have matching numbers
so output is:
22 44 66 55 (10) 77 (20)
(numbers 10 and 20 matched for example)
is this possible in awk . im using gawk for... (5 Replies)
I am looking for a better way to match real numbers within a specified tolerance range. My current code is as follows:
if ($1 !~ /^CASE/) for(i=1;i in G;i++) if (G >= $5-1 && G <= $5+1)
{ print $1,$4,$5,J,G }
else { print $1,"NO MATCH" }
where $5 and G are... (3 Replies)
Hello to all,
I hope some awk guru could help me.
I have 2 input files:
File1: Is the complete database
File2: Contains some numbers which I want to compare
File1:
"NUMBERKEY","SERVICENAME","PARAMETERNAME","PARAMETERVALUE","ALTERNATENUMBERKEY"... (9 Replies)
Hi Experts,
I am finding difficulty to get exact match:
file
OPERATING_SYSTEM=HP-UX
LOOPBACK_ADDRESS=127.0.0.1
INTERFACE_NAME="lan3"
IP_ADDRESS="10.53.52.241"
SUBNET_MASK="255.255.255.192"
BROADCAST_ADDRESS=""
INTERFACE_STATE=""
DHCP_ENABLE=0
INTERFACE_NAME="lan3:1"... (6 Replies)
Hi,
I'm trying to match a filename that could be called anything from vout001 to vout252 and was trying to do a small test but I'm not getting the result I thought I would..
Can some one tell me what I'm doing wrong?
*****@********>echo $mynumber ... (4 Replies)
Input: START
OS:: UNIX
Release: xxx
Version: xxx
END
START
OS:: LINUX
Release: xxx
Version: xxx
END
START
OS:: Windows
Release: xxx
Version: xxx
ENDHere i am trying to get all the information between START and END, only if i could match OS Type.
I can get all the data between the... (3 Replies)
In the awk below I am trying to match the value in $4 of file1 with the split value from $4 in file2. I store the value of $4 in file1 in A and the split value (using the _ for the split) in array. I then strore the value in $2 as min, the value in $3 as max, and the value in $1 as chr.
If A is... (6 Replies)
Discussion started by: cmccabe
6 Replies
LEARN ABOUT DEBIAN
grib_get_data
GRIB_GET_DATA(1) User Commands GRIB_GET_DATA(1)NAME
grib_get_data - Print a latitude, longitude, data values list
DESCRIPTION
Print a latitude, longitude, data values list
USAGE
grib_get_data [options] grib_file grib_file ...
OPTIONS -M Multi-grib support off. Turn off support for multiple fields in single grib message
-m missingValue
The missing value is given through this option. Any string is allowed and it is printed in place of the missing values. Default is
to skip the missing values.
-p key[:{s/d/l}],key[:{s/d/l}],...
Declaration of keys to print. For each key a string (key:s) or a double (key:d) or a long (key:l) type can be requested. Default
type is string.
-R out_file_name
Redirect the standard output to "out_file_name". Faster than the shell redirect (>) because buffered.
-F format
C style format for values. Default is "%.10e"
-w key[:{s/d/l}]{=/!=}value,key[:{s/d/l}]{=/!=}value,...
Where clause. Grib messages are processed only if they match all the key/value constraints. A valid constraint is of type
key=value or key!=value. For each key a string (key:s) or a double (key:d) or a long (key:l) type can be specified. Default type is
string.
-f Force. Force the execution not to fail on error.
-G GRIBEX compatibility mode.
-7 Does not fail when the message has wrong length
-V Version.
AUTHOR
This manpage has been autogenerated by Enrico Zini <enrico@debian.org>from the command line help of grib_get_data.
grib_get_data April 2009 GRIB_GET_DATA(1)