Issues in reading file using 'awk'


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Issues in reading file using 'awk'
# 8  
Old 03-16-2013
What shell are you using where:
Code:
GREP="qcd30"
GREP=""QCD50"
for file in "${GREP[@]}"

creates an array rather than setting grep to the value:
Code:
QCD50
for file in

Even if you get rid of the double double-quote at the start of the second assignment to GREP, GREP still would not be an array.
Have you considered using:
Code:
find top_directory -type d

to generate your list of directories?
# 9  
Old 03-17-2013
Hi Don,
sorry I was mistaken.
I used it following way and it is working fine (snippet of the script):
Code:
 
GREP[1]="QCD30"
GREP[2]="QCD50"

for FileNameIndx in "${GREP[@]}"
      do
      echo 'crab ntuplize_crab -getoutput/status -c ' $FileNameIndx
      crab ntuplize_crab -getoutput -c $FileNameIndx
done

I did try your command, but when I do not have pattern of the directories then I am not sure how it would help me.
Besides, I have some directories which I do not want in the same directory.


I am using that awk command, but I do not understand as how the piece with NF and p works.

Code:
       jobNo=$(awk '/Jobs with Wrapper/ && $NF != 0{s=1}   /List of jobs/ && s{if(p){p=p","$NF}else{p=$NF};s=""}END{print p}' $FileNameIndx"_status.log" )

Code:
  
 $NF != 0{s=1}  does it say that NF variable should not be 0 and should be true when "s" string is true.

 s{if(p){p=p","$NF}else{p=$NF};s=""}  this part confuses me.

Can you help with this please.

emily,
# 10  
Old 03-17-2013
Here is a copy of your awk script reformatted with comments added:
Code:
awk '
/Jobs with Wrapper/ && $NF != 0 {
        # We have found a "Jobs with Wrapper" line with a non-zero Exit Code;
        # set s to a non-zero, non-empty string value.  (This indicates that we
        # need to save jobs from the next "List of Jobs" line.)
        s=1
}       
/List of jobs/ && s {
        # We have a "List of Jobs" line and we need to add this list to our saved
        # jobs output list.
        if(p)   # Our current list is not empty; add a comma and this line's job
                # list to our saved jobs output list.
                p=p","$NF
        else    # Our current list is empty; initialize our saved jobs output list.
                p=$NF
        # Clear the indicator saying that we should add jobs from the next
        # "List of Jobs" line.
        s=""
}       
END {   # Print the accumulated non-zero exit code saved jobs output list.
        print p
}

Does this help you understand what your script is doing?
This User Gave Thanks to Don Cragun For This Post:
# 11  
Old 03-17-2013
Thanks Don, it definitely does..Smilie

---------- Post updated at 08:28 AM ---------- Previous update was at 08:25 AM ----------

Hi again,
Would you please reply for this mail thread: https://www.unix.com/shell-programmin...t-working.html
I modified this script for better use, but there is issue with AND boolean..

I appreciate your kindness,
emily
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Awk: File Checking Issues with 9 multiple file

Hi, I have 9 files which are generated dynamically & if there is a some condition which doesn't meet the criteria then file is not created or is of zero size. so further i am unable to consolidate the files based on following code 1 awk -F, -v ptime="201407" 'FNR==1... (3 Replies)
Discussion started by: siramitsharma
3 Replies

2. Shell Programming and Scripting

Reading data from file using awk

I have a file as below. It contains two data sets separated by >. I want to pipe each data set to another program called psxy. How can I get the different records Have started doing as follows but it only passes the first data set awk 'BEGIN {RS=">"};{print $0}' p.dat cat p.dat... (12 Replies)
Discussion started by: kristinu
12 Replies

3. Shell Programming and Scripting

awk issue while reading from file in while do

Hi Friends, I am trying to scan line by line using awk and pull the values and pass it in variables and then will use the variables but doesn't work. Please see below for details. #more dbtest.sh ---------------------------------- #!/bin/bash . $HOME/.bash_profile while read line do... (6 Replies)
Discussion started by: narunice
6 Replies

4. Shell Programming and Scripting

reading file awk or while

While read line query !!! Folks, I am working on a file which has entries as follows. I am using while read line to generate desired output as follows. filename1: Name : sdt2156157_ID NOS : 4567 NOS : 2348 Name : sdt2156158_ID NOS : 4987 NOS :... (3 Replies)
Discussion started by: dynamax
3 Replies

5. Shell Programming and Scripting

awk file reading doubt

Hi, Using this trivial code, I am trying to insert/paste the single column data of a file into the second column (field 2) of a multi-column text file. awk 'FNR==NR {a=$0; next} {$1=$1 OFS a}1' single-column-file multi-column-file Lets consider the single-column-file as 'f2' and multi-column... (1 Reply)
Discussion started by: royalibrahim
1 Replies

6. Shell Programming and Scripting

awk- reading input file twice

Hello, I've been trying to come up with a solution for the following problem; I have an input file with two columns and I want to print as an output the first column without any changes but for the second column, I want to divide it by its last value. Example input: 1 9 2 10 3 11 4 12 5... (14 Replies)
Discussion started by: acsg
14 Replies

7. Shell Programming and Scripting

Issues with Reading Line by line from a file

I am trying to read a host name one at a time from a file which has a list of hostnames and do rsh and print . its not looping through the entire file. its breaking out after the first entry. If i comment out the rsh then it loops through file #!/bin/ksh filename="/tmp/hostnames"; while read -r... (11 Replies)
Discussion started by: SMunje
11 Replies

8. Shell Programming and Scripting

Reading a file several times with awk

Hi everyone, I was wondering if it's possible to read a file ("file2" in my example) more than once. In this example I want to print file2 entirely for each lines of file1: awk -F$'\t' '{ print $0 while ((getline < "file2") > 0) { print "\t"$0 } }' file1 It... (4 Replies)
Discussion started by: anthony.cros
4 Replies

9. Shell Programming and Scripting

Using awk to when reading a file to search and output to file

Hi, I am not sure if this will work or not. I am getting a syntax error. I am reading fileA, using an acct number field trying to see if it exists in fileB and output to new file. Can anyone tell me if what I am doing will work or should I attempt it another way? Thanks. exec < "${fileA}... (4 Replies)
Discussion started by: ski
4 Replies

10. Shell Programming and Scripting

Reading large file, awk and cut

Hello all, I have 2 files, the first (indexFile1) contains start offset and length for each record inside the second file. The second file can be very large, each actual record start offset and length is defined by the entry in indexFile1. Since there are no records separators wc-l returns 0 for... (1 Reply)
Discussion started by: gio001
1 Replies
Login or Register to Ask a Question