Sponsored Content
Full Discussion: Loop and array problem
Top Forums Shell Programming and Scripting Loop and array problem Post 302785119 by Don Cragun on Sunday 24th of March 2013 10:19:38 PM
Old 03-24-2013
I don't have a set of files of the size you want to use, but the following works for the samples you provided:
Code:
awk '
FNR == NR {
        h[$1] = NR      # set "h"igh end of input lines for this label
        m[NR] = $2      # save "m"inimum range value for this line
        M[NR] = $3      # save "M"aximum range value for this line
        l[NR] = $4      # save "l"abel from this line
        next
}
{       e = h[$1]       # set high line number for field 1 value on this line
        o = $NF         # set initial output line to label on this line
        oc = 0          # set number of matched lines
        # Loop through the ranges associated with field 1 from this input line
        for(i = h[$1 - 1] + 1; i <= e; i++) {
                if($2 < m[i]) continue  # range is too low; keep looking
                if(m[i] > $2) break     # range is too high; we are done
                if($2 <= M[i]) {        # we have a matching range
                        o = o " " l[i]  # add corresponding label to output line
                        oc++            # increment match count
                }
        }
        print o, oc     # print the matched labels and the match count
}' "file 2" "file 1"

As always, if you are using a Solaris/SunOS system, use /usr/xpg4/bin/awk or nawk instead of awk.
With your sample input, this script produces:
Code:
LABEL_A LABEL_7 LABEL_8 2
LABEL_B LABEL_9 1
LABEL_C LABEL_4 1
LABEL_D LABEL_1 1

which matches the Full output you said you wanted except your output showed a space instead of the underline marked in red in the last output line.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Array Declaration and For Loop

I am just stucked in syntax.This is more like a array and for loop problem. I want to use ls -l command and get filezise and filename of all filenames in the directory in an array (say array#1). After 2 minutes of sleep, i want to get the same information in another array (say array#2). The... (4 Replies)
Discussion started by: 33junaid
4 Replies

2. Shell Programming and Scripting

FTP and run a loop for array problem

Hello, I have a problem with my script whereby it does not want to loop. The function of my script is to FTP into a server and go to each directory/volume in the array 'VOL'. The way the loop is suppose to work, is to go into the first volume, get the files of R(yesterday's date) and... (3 Replies)
Discussion started by: tuffgong2008
3 Replies

3. Shell Programming and Scripting

Help with awk in array in while loop

Hi everyone:) I have 2 files - IN & OUT. Example: IN A:13:30 B:45:40 . . . UNLIMITED OUT Z:12:24 Y:20:15 . . . UNLIMITED I want first row of numbers of IN - OUT. Example 13-12 45-20 My code is (2 Replies)
Discussion started by: vincyoxy
2 Replies

4. Shell Programming and Scripting

Array not surviving while loop

So I'm trying to read datafile into an array, with each line representing one variable in the array. I'm successful at first but somehow it keeps getting erased. i=0 grep '.*' datafile | while read line do echo $i array=$(echo $line) echo ${array} #printing array to make sure it's... (5 Replies)
Discussion started by: DrSammyD
5 Replies

5. Shell Programming and Scripting

Array and Loop Problem

I've got this problem, if I modify an array in the loop and print it, everything is fine as long as I stay in the loop. But, when I print it outside the loop, nothing happens... How can I solve this problem? Here I prepared a sample for you to see my problem; zgrw@Rain:~$ cat test asd 123... (4 Replies)
Discussion started by: zgrw
4 Replies

6. Shell Programming and Scripting

Array with do while and if loop

Hi All, I am trying to run a do while for an array. And in the do while, I'm trying to get a user response. Depending on the the answer, I go ahead and do something or I move on to next element in the array. So far I can read the array, but I can't get the if statement to work. Any suggestions... (5 Replies)
Discussion started by: nitin
5 Replies

7. Shell Programming and Scripting

problem access array outside of loop in bash

Below is a test script I was trying to use so that I could understand why the logic was not working in a larger script. While accessing and printing array data inside the while loop, everything is fine. Outside the loop, i guess everything is null?? The for loop that is meant to cycle... (4 Replies)
Discussion started by: adlmostwanted
4 Replies

8. Shell Programming and Scripting

Array Variable being Assigned Values in Loop, But Gone when Loop Completes???

Hello All, Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....? I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping through a string containing some of these "Illegal Characters". Now... (5 Replies)
Discussion started by: mrm5102
5 Replies

9. Shell Programming and Scripting

awk loop using array:wish to store array values from loop for use outside loop

Here's my code: awk -F '' 'NR==FNR { if (/time/ && $5>10) A=$2" "$3":"$4":"($5-01) else if (/time/ && $5<01) A=$2" "$3":"$4-01":"(59-$5) else if (/time/ && $5<=10) A=$2" "$3":"$4":0"($5-01) else if (/close/) { B=0 n1=n2; ... (2 Replies)
Discussion started by: klane
2 Replies

10. Shell Programming and Scripting

Bash for loop array

Hi there, A bit new to bash and am having an issue with a for loop. I look for filenames in a specified directory and pull the date string from each meeting a certain criteria, and then would like to make a directory for each date found, like this: search 20180101.gz 20180102.gz 20180103.gz... (5 Replies)
Discussion started by: mwheeler12
5 Replies
MSQL_FETCH_ROW(3)														 MSQL_FETCH_ROW(3)

msql_fetch_row - Get row as enumerated array

SYNOPSIS
array msql_fetch_row (resource $result) DESCRIPTION
msql_fetch_row(3) fetches one row of data from the result associated with the specified query identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0. Subsequent call to msql_fetch_row(3) would return the next row in the result set, or FALSE if there are no more rows. PARAMETERS
o $ result -The result resource that is being evaluated. This result comes from a call to msql_query(3). RETURN VALUES
Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. EXAMPLES
Example #1 msql_fetch_row(3) example <?php $con = msql_connect(); if (!$con) { die('Server connection problem: ' . msql_error()); } if (!msql_select_db('test', $con)) { die('Database connection problem: ' . msql_error()); } $result = msql_query('SELECT id, name FROM people', $con); if (!$result) { die('Query execution problem: ' . msql_error()); } while ($row = msql_fetch_row($result)) { echo $row[0] . ': ' . $row[1] . " "; } msql_free_result($result); ?> CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.0.4 | | | | | | | A bug was fixed when retrieving data from col- | | | umns containing NULL values. Such columns were | | | not placed into the resulting array. | | | | +--------+---------------------------------------------------+ SEE ALSO
msql_fetch_array(3), msql_fetch_object(3), msql_data_seek(3), msql_result(3). PHP Documentation Group MSQL_FETCH_ROW(3)
All times are GMT -4. The time now is 03:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy