Problem in AWK....


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem in AWK....
# 1  
Old 09-23-2007
Problem in AWK....

Hi everybody,

i have an array of list, and i am checking the xact match of those array with respect to some file system .

but my awk function is to match the values from the array and if no such match is there then it should exit from there.

problem is my awk is not returning any exit status and looping is continue throwout the array,

please find the snippets,
Config_Details=("CS_ID" "CS_NAME" "FIELD_SEP" "REC_SEP" "FIELDS_NUM" "FTPS_FILE" "DECSN_FMT_TYPE" "DECSN_FIELDS" "DECSN_SCHDL_TYPE" "DECSN_SCHDL" "DECSN_TIME" "UNIQ_FILE_CONVNS" "DECSN_UNITWS" "OUTBOX_RETN" "MAIL_CONTACTS" "FTPS_DETAILS" )
function format_check
{
var=$1
awk -v find=$var ' BEGIN{} { if (match($0,find"="))
printf ("%s\n", "present");
else printf ("%s%s\n", find, "not present") ; exit 1 ;}' "ll.txt"
}
for i in ${Config_Details[@]}
do
format_check "$i"
done

in ll.txt
only CS_ID is exactly matching, and rest are not matching, so it should exit after CS_ID matching and should not continue for searching next array......but it's not doing as such......
# 2  
Old 09-23-2007
The exit is actually happening, its just that the exit is from the awk and not from your script. If you want to exit from the script, you need to have an additional check:
Code:
Config_Details=("CS_ID" "CS_NAME" "FIELD_SEP" "REC_SEP" "FIELDS_NUM" "FTPS_FILE" "DECSN_FMT_TYPE" "DECSN_FIELDS" "DECSN_SCHDL_TYPE" "DECSN_SCHDL" "DECSN_TIME" "UNIQ_FILE_CONVNS" "DECSN_UNITWS" "OUTBOX_RETN" "MAIL_CONTACTS" "FTPS_DETAILS" ) 
function format_check
{
var=$1
awk -v find=$var ' BEGIN{} { if (match($0,find"=")) 
printf ("%s\n", "present"); 
else printf ("%s%s\n", find, "not present") ; exit 1 ;}' "ll.txt"
if [ $? -eq 1 ]; then
   exit 1
fi
}

for i in ${Config_Details[@]}
do
format_check "$i"
done

# 3  
Old 09-24-2007
hey blowtorch,

thanx a lot..but the method is not working......
if all the fields present correctly in the ll.txt which i am searching from Config_Details array....

it is only find CS_ID is present but from the next line it is exiting out......is there any other way to work out....
# 4  
Old 09-25-2007
Sorry, I'm not getting what you are trying to say. I thought that the script had to exit the moment it couldn't find whatever it was supposed to... perhaps you could explain what you wanted in more detail?
# 5  
Old 09-29-2007
sorry blowtorch for late reply,

let my file ll.txt has all records i.e. all the records present in ll.txt which belongs to the search array Config_Details ,
"CS_ID" "CS_NAME" "FIELD_SEP" "REC_SEP" "FIELDS_NUM" "FTPS_FILE" "DECSN_FMT_TYPE" "DECSN_FIELDS" "DECSN_SCHDL_TYPE" "DECSN_SCHDL" "DECSN_TIME" "UNIQ_FILE_CONVNS" "DECSN_UNITWS" "OUTBOX_RETN" "MAIL_CONTACTS" "FTPS_DETAILS"
so if i am going to execute the following awk suggested by you,
function format_check
{
var=$1
awk -v find=$var ' BEGIN{} { if (match($0,find"="))
printf ("%s\n", "present");
else printf ("%s%s\n", find, "not present") ; exit 1 ;}' "ll.txt"
if [ $? -eq 1 ]; then
exit 1
fi
}

for i in ${Config_Details[@]}
do
format_check "$i"
done

then it is checking the 1st array as CS_ID is present but rest values are not present and exit from 2nd record onward ....

so my concept is , it would not search the ll.txt if any of the array listed value not present in ll.txt else it should go thru .
# 6  
Old 09-30-2007
Any help on this question???

hey need help....
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk problem

Hi I have two columns and I would like to create a third column based on how many lines away from a value of 1 in column 2, for example I have 1,0 2,0 3,0 4,0 5,0 6,1 7,0 8,0 9,0 10,0 11,1 And I want an output (6 Replies)
Discussion started by: garethsays
6 Replies

2. Shell Programming and Scripting

awk problem

i have an email list in file.txt with comma separated line1 - FIELD1,pippo@gmail.com,darth@gmail.com line2 - FIELD2,pippo@gmail.com,darth@gmail.com,sampei@gmail.com output=(awk -F ',' -v var="$awkvar" '$1==var {print $2,$3,$4}' spreadsheet.txt)but awk delete some letters at the... (8 Replies)
Discussion started by: pasaico
8 Replies

3. Shell Programming and Scripting

awk problem - combining awk statements

i have a datafile that has several lines that look like this: 2,dataflow,Sun Mar 17 16:50:01 2013,1363539001,2990,excelsheet,660,mortar,660,4 using the following command: awk -F, '{$3=strftime("%a %b %d %T %Y,%s",$3)}1' OFS=, $DATAFILE | egrep -v "\-OLDISSUES," | ${AWK} "/${MONTH} ${DAY}... (7 Replies)
Discussion started by: SkySmart
7 Replies

4. UNIX for Dummies Questions & Answers

Little problem with AWK

I thought I had solved this problem but after testing the script I came to realize that it is not doing what I need. So, here it goes again. This is the code: awk '/\>/{F=$2; N=$3; split(FILENAME, A, "."); getline; x = ">"}{print ">" A"-" x++" "F" " N"\n" $0}' This is the input file: ... (5 Replies)
Discussion started by: Xterra
5 Replies

5. Shell Programming and Scripting

awk problem

Find the number of files with sizes > 100KB in /, /bin, /usr, /usr/bin and /usr/sbin directories and output them in a two column format with the name of the directory and the number of files. i tried with awk $>ls -lh | awk '/^-/ && $5 >= 100k {print $8 $5}' but it is not working pls tell... (3 Replies)
Discussion started by: abhikamune
3 Replies

6. Shell Programming and Scripting

Problem with awk awk: program limit exceeded: sprintf buffer size=1020

Hi I have many problems with a script. I have a script that formats a text file but always prints the same error when i try to execute it The code is that: { if (NF==17){ print $0 }else{ fields=NF; all=$0; while... (2 Replies)
Discussion started by: fate
2 Replies

7. Shell Programming and Scripting

Awk problem: How to express the single quote(') by using awk print function

Actually I got a list of file end with *.txt I want to use the same command apply to all the *.txt Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics. For example: I got the file below: file1.txt file2.txt file3.txt... (4 Replies)
Discussion started by: patrick87
4 Replies

8. Shell Programming and Scripting

problem using awk

Hi there every body I'm new to shell scripting and there is a problem facing me,, please look at the following piece of code: awk ' BEGIN{ FS="<assertion id=\1"; RS="<assertion id=\"2"}/<assertion id=\"1/{print FS$2 > "/home/ds2/test/output.txt"} ' filename all I wanna do is to... (6 Replies)
Discussion started by: senior_ahmed
6 Replies

9. Shell Programming and Scripting

Problem with AWK

Hi All, How can i store a value of the unix command executed in AWK with system command. devise=`cut -c1-3 dvgp.txt` I wrote this command in awk as awk'{ code= sprintf("devise=`cut -c1-3 dvgp.txt`"); system(code); }' Is this correct. can you please suggest me how the code can be... (1 Reply)
Discussion started by: krishna_gnv
1 Replies

10. UNIX for Dummies Questions & Answers

AWK Problem

Hi, I posted something here about this yesterday but I can't seem to find it. I needed help writting a script which would append a file with new lines after every so many charachters. Example: (my original flat file) L60 LETTER OF CREDIT 60 DAYS W00 ON RECEIPT WIRE TRANSFER W30 NET... (12 Replies)
Discussion started by: gseyforth
12 Replies
Login or Register to Ask a Question