Issue in awk parsing under while loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Issue in awk parsing under while loop
# 1  
Old 06-13-2017
Issue in awk parsing under while loop

Hi

I am trying to parse a grep output using awk. It works fine individually and not working under the loop with variable name assigned.

Code:
cat > file.txt
dict=/dictr/abcd/d1/wq:/dictr/abcd/d2/wq:/dictr/abcd/d3/wq:

sample tried code
Code:
Nos=`grep -w "dict" file.txt | awk -F"=" '{print $2}' | awk -F":" '{print NF-1}'`
echo "$Nos"
while [ "$Nos" -ge 1 ]
do
sPath=`grep -w "dict" file.txt | awk -F"=" '{ print $2}' | awk -F":" '{ print $(echo "$Nos") }'`
echo "$sPath" 
if [[ -s "$sPath"/*12581.log ]]; then
    FileName=`ls  "$sPath"/*12581.log |head -1`
fi
  Nos=`expr $Nos- 1`
done
#echo "$FileName"

sample output
Code:
/dictr/abcd/d1/wq:/dictr/abcd/d2/wq:/dictr/abcd/d3/wq:
/dictr/abcd/d1/wq:/dictr/abcd/d2/wq:/dictr/abcd/d3/wq:
/dictr/abcd/d1/wq:/dictr/abcd/d2/wq:/dictr/abcd/d3/wq:

# 2  
Old 06-13-2017
I know you said "[you're] trying to parse a grep output using awk", but what are you, ultimately, trying to accomplish. What's the end goal?

What's the result you expect out of this?
Code:
`grep -w "dict" file.txt | awk -F"=" '{ print $2}' | awk -F":" '{ print $(echo "$Nos") }'`

# 3  
Old 06-13-2017
Hi

I want
Code:
echo "$sPath"

should produce the output

Code:
/dictr/abcd/d1/wq
/dictr/abcd/d2/wq
/dictr/abcd/d3/wq

# 4  
Old 06-13-2017
Quote:
Originally Posted by ananan
Hi

I want
Code:
echo "$sPath"

should produce the output

Code:
/dictr/abcd/d1/wq
/dictr/abcd/d2/wq
/dictr/abcd/d3/wq

OK, here the thing, AWK doesn't need the help of GREP, nor do you need to invoke AWK twice to achieve that result.

Consider the following:
Code:
awk -F: 'sub("^dict=", "") {for(i=1;i<NF;i++){print $i}}' file.txt
/dictr/abcd/d1/wq
/dictr/abcd/d2/wq
/dictr/abcd/d3/wq

# 5  
Old 06-13-2017
Hi

What about assigning the output to a variable if certain file exists.

Code:
bash-3.00$ awk -F: 'sub("^dict=", "") {for(j=1;j<NF;j++) system("test -f " "$j"/*12581.log)==0 { print $j }}' file.txt
awk: syntax error near line 1
awk: bailing out near line 1
bash-3.00$ 

need to assign the output of awk to a variable for further processing. the following part of the previous code needs to be merged to assign.

if [[ -s "$sPath"/*12581.log ]]; then
    FileName=`ls  "$sPath"/*12581.log |head -1`
fi

# 6  
Old 06-13-2017
Assigning to a variable:
Code:
sPath=$(awk -F: 'sub("^dict=", "") {for(i=1;i<NF;i++){print $i}}' file.txt)

What do you expect to be the result of this? What would it yield?
Code:
"$sPath"/*12581.log

# 7  
Old 06-13-2017
i will be having files ending with *12581.log in only one of the returned path.
So i want to use that path for further processing.

simple terms awk will give three paths and definitely in one path *12581.log will be present.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing via sed issue

sorry I messed up the last post with too many mistakes and corrections so I closed it and opening a new one which should be clear to everyone .my apologies to the admins. I am using sun solaris and Linux , what I want is SED to print any string (or output it to a file preferably) that does... (2 Replies)
Discussion started by: boncuk
2 Replies

2. Shell Programming and Scripting

Parsing a control file loop

Hi, Let's say I have a control file like this: RHEL apple "echo apple" RHEL bravo "ls -l bravo*" RHEL church "chmod church.txt" SUSE drive "chown user1 drive.txt" SUSE eagle "echo "eagle flies"" SUSE feather "ls -l feather*" HP-UX google "sed 's/^Google.*$/&\ ACTION: go to... (14 Replies)
Discussion started by: The Gamemaster
14 Replies

3. Shell Programming and Scripting

awk - 2 files comparison without for loop - multi-line issue

Greetings Experts, I need to handle the views created over monthly retention tables for which every new table in YYYYMMDD format, there is equivalent view created and the older table which might be dropped, the view over it has to be re-created over a dummy table so that it doesn't fail.... (2 Replies)
Discussion started by: chill3chee
2 Replies

4. Shell Programming and Scripting

Issue with awk script parsing log file

Hello All, I am trying to parse a log file and i got this code from one of the good forum colleagues, However i realised later there is a problem with this awk script, being naive to awk world wanted to see if you guys can help me out. AWK script: awk '$1 ~ "^WRITER_" {p=1;next}... (18 Replies)
Discussion started by: Ariean
18 Replies

5. Shell Programming and Scripting

For loop, awk command issue

limit.csv data -------------- 5600050 38Nhava 400077 27Bomay rate.txt data ------------- 38NhaVA 27BomaY 27Bomay below is my script: for i in `cat limit.csv` do b=`awk '{print $1}' $i` (4 Replies)
Discussion started by: p_satyambabu
4 Replies

6. Shell Programming and Scripting

awk loop issue

Hi I am not able to solve this minor issue even after a lot of trial! Will be thankful if you can help me out. This is part of a awk script and the loop is self-explanatory - num_null_key=0 #for counting the number of null keys num_non_null_key=0 #for counting the number of non null... (2 Replies)
Discussion started by: nsinha
2 Replies

7. Shell Programming and Scripting

While loop with awk issue

Hi folks. I am trying to use a while loop along with awk to get the colums where 2 specific words are found. Here is the output of the command i run where i need to pull the column numbers if specific words are found: State Type Rebal Sector Block AU Total_MB Free_MB ... (3 Replies)
Discussion started by: Stephan
3 Replies

8. Shell Programming and Scripting

Parsing issue

Scripting geeks please advice how this script should parse the input parameter to File Name convention to search the strings. Enclosed is the basic view of the search architecture. ##******************************************************************************************************* ## ... (2 Replies)
Discussion started by: raghunsi
2 Replies

9. UNIX for Dummies Questions & Answers

Issue with parsing config variables

I am using MKS tool kit on windows server. One config variable is defined in windows environment and I am trying to use that variable. # Below RootDir is defined in windows RootDir="\\f01\var" # in unix script details="$RootDir/src|$RootDir/tgt" src=`echo $details|awk -F '|' '{print... (1 Reply)
Discussion started by: madhukalyan
1 Replies

10. Shell Programming and Scripting

parsing logfiles (performance issue)

-------------------------------------------------------------------------------- Hi All, I am reading some logfiles and parsing data and printing to some textfile. Here is my code OLDIFS=$IFS IFS=' ' # just a newline, in single quotes while read data do if then #Parsing the... (4 Replies)
Discussion started by: subin_bala
4 Replies
Login or Register to Ask a Question