Unable to do grep in a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Unable to do grep in a script
# 8  
Old 03-22-2017
one potential issue that I can see:
Code:
xtr_flnm_list="${xtr_flptrn1}""${inst_nmb}"-"{$file_x_date}"."{$list_file}"

should be
Code:
xtr_flnm_list="${xtr_flptrn1}${inst_nmb}-${file_x_date}.${list_file}"

misplaced {-s.
You don't need extra double-quotes in blue
Edit the script and continue debugging looking at the output of tracing and making modifications...
# 9  
Old 03-22-2017
Quote:
Originally Posted by vgersh99
one potential issue that I can see:
Code:
xtr_flnm_list="${xtr_flptrn1}""${inst_nmb}"-"{$file_x_date}"."{$list_file}"

should be
Code:
xtr_flnm_list="${xtr_flptrn1}${inst_nmb}-${file_x_date}.${list_file}"

misplaced {-s.
You don't need extra double-quotes in blue
Edit the script and continue debugging looking at the output of tracing and making modifications...
thanks a lot for pointing out the mistakes. also I have changed the script to bash again cos it seems the regex pattern matching is not avaiable in ksh ...continuing to edit, will let you know

---------- Post updated at 03:15 PM ---------- Previous update was at 02:47 PM ----------

Hi, OK, iv edited the script a bit --just changed the places of the statements and some formatting, but it kind of gets stuck coming to the grep function Smilie. Kind of lost as to how to move forward, cos iv been stuck here before with not much clue

Code:
#!/bin/bash

set -x

#static value assignment to a variable

list_file=lst	   #taking a variable into extraction list file

enc_tar_xtnsn=tar.gz.enc	#taking a variable into extraction encrypted file 

xtr_flptrn1=bw3-syst_INST 	#taking a variable into extraction file path

#main_scp=/usr/local/scripts/omniadm/omnftppasrv/extract.sh  #main extraction script

echo "Enter file processing date [YYYYMMDD]"
read file_x_date       

echo "Inst nu:"
read inst_nmb      

#breaking 80byte_flnm into YYYYMM and DD

yr_mnth=`echo "${file_x_date}"|awk '{print substr($0,1,6)}'`

only_dt=`echo "${file_x_date}"|awk '{print substr($0,7,8)}'`

#variable value assigned dynamically based on static value assignemnt above

xtr_flnm_list="${xtr_flptrn1}${inst_nmb}-${file_x_date}.${list_file}"    #taking a variable into extraction file name

#---echo $xtr_flnm_list

xfile_pth=/backup/omnftppasrv/bw3/"${yr_mnth}"  # storing extraction file path into a variable

#---echo $xfile_pth

enc_tar_filename="${xtr_flptrn1}${inst_nmb}-${file_x_date}.${enc_tar_xtnsn}"

#---echo $enc_tar_filename

#cmptl_extr_list_file=$xfile_pth/$xtr_flnm_list	#storing complete file name with path into a variable

#echo $cmptl_extr_list_file

cmptl_extr_enc_file="${xfile_pth}/${enc_tar_filename}"

echo $cmptl_extr_enc_file

func_xtract_file()
{
#building regex for date searching
regex="$yr_mnth"\[0-9\]\[0-9\]

#building date searching regex list file
xtr_regex="${xtr_flptrn1}${inst_nmb}-${regex}.${list_file}"

cmptl_extr_list_file="${xfile_pth}/${xtr_regex}"	#storing complete file name with path into a variable

#echo $cmptl_extr_list_file

#grepping the filename from list file
/bin/grep "$flnm_80BYTE" "${cmptl_extr_list_file}"
}

echo "filename to extract"
read flnm_80byte    

	if [[ "$flnm_80byte" =~ .*\.prc ]]
	then
		echo "correct file name"
		#assigning variable for grep pattern searching
		flnm_80BYTE=$flnm_80byte
		echo "calling func_xtract_file"
		func_xtract_file
	elif [[ "$flnm_80byte" =~ .*\.inc ]]
	  then
		  strppd_flname=`echo $flnm_80byte|awk '{print substr($0, 1, length($0) - 4)}'`
		  flnm_80BYTE=$strppd_flname\.prc
		  echo $flnm_80BYTE
		  echo "calling func_xtract_file"
		  func_xtract_file
	  else
		  flnm_80BYTE=$flnm_80byte\.prc
		  echo $flnm_80BYTE
		  echo "calling func_xtract_file"
		  func_xtract_file
	fi
#script ends here

# 10  
Old 03-22-2017
what's output of set -x ?
you need to make sure that all the vars get expanded as expected and each command/function does what you'd expect...
# 11  
Old 03-22-2017
Hi, sorry forgot to paste the output last time around. variables are getting expanded, just that when expansion for the path needs to occur in the grep command, things are not working out. I tried do to ls manually and the path is there.

Code:
dsiddiq:P7_LIVE:omnftppa:/home/dsiddiq> ./extract80byte.sh
+ list_file=lst
+ enc_tar_xtnsn=tar.gz.enc
+ xtr_flptrn1=bw3-syst_INST
+ echo 'Enter file processing date [YYYYMMDD]'
Enter file processing date [YYYYMMDD]
+ read file_x_date
20170219
+ echo 'Inst nu:'
Inst nu:
+ read inst_nmb
19
++ echo 20170219
++ awk '{print substr($0,1,6)}'
+ yr_mnth=201702
++ echo 20170219
++ awk '{print substr($0,7,8)}'
+ only_dt=19
+ xtr_flnm_list=bw3-syst_INST19-20170219.lst
+ xfile_pth=/backup/omnftppasrv/bw3/201702
+ enc_tar_filename=bw3-syst_INST19-20170219.tar.gz.enc
+ cmptl_extr_enc_file=/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170219.tar.gz.enc
+ echo /backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170219.tar.gz.enc
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170219.tar.gz.enc
+ echo 'filename to extract'
filename to extract
+ read flnm_80byte
20170219_HMS_80Byte_PAYbig3_1_4.prc
+ [[ 20170219_HMS_80Byte_PAYbig3_1_4.prc =~ .*\.prc ]]
+ echo 'correct file name'
correct file name
+ flnm_80BYTE=20170219_HMS_80Byte_PAYbig3_1_4.prc
+ echo 'calling func_xtract_file'
calling func_xtract_file
+ func_xtract_file
+ regex='201702[0-9][0-9]'
+ xtr_regex='bw3-syst_INST19-201702[0-9][0-9].lst'
+ cmptl_extr_list_file='/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-201702[0-9][0-9].lst'
+ /bin/grep 20170219_HMS_80Byte_PAYbig3_1_4.prc '/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-201702[0-9][0-9].lst'
grep: can't open /backup/omnftppasrv/bw3/201702/bw3-syst_INST19-201702[0-9][0-9].lst
dsiddiq:P7_LIVE:omnftppa:/home/dsiddiq>ls /backup/omnftppasrv/bw3/201702/bw3-syst_INST19-201702[0-9][0-9].lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170201.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170202.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170203.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170204.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170205.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170206.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170207.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170208.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170209.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170210.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170211.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170212.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170213.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170214.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170215.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170216.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170217.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170218.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170219.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170220.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170221.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170222.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170223.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170224.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170225.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170226.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170227.lst
/backup/omnftppasrv/bw3/201702/bw3-syst_INST19-20170228.lst

# 12  
Old 03-22-2017
not to be overly simplistic but are you sure your path to grep is /bin/grep?

what's the output of
Code:
which grep

# 13  
Old 03-22-2017
loose the double quotes - your cmptl_extr_list_file contains the file globbing that needs to be expanded by shell :
Code:
/bin/grep "$flnm_80BYTE" ${cmptl_extr_list_file}

This User Gave Thanks to vgersh99 For This Post:
# 14  
Old 03-22-2017
@os2mac, grep is fine, no issues there, but thanks

@vgersh99: thanks a lot, i found it also, but thanks thanks a lot for your patience. I have been banging my head on this for the last 3-4 hours. had it not been for your pointing out, i wouldn't have been able to figure this out. for now at least a small part is fixed, i need to include other functions also, but phew this grep part had really got me. thanks a lot..

Code:
/bin/grep $flnm_80BYTE ${cmptl_extr_list_file}

..did the trick for me
This User Gave Thanks to dsid For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Unable to grep using wildcard in a file.

I wish to check if my file has a line that does not start with '#' and has 1. Listen and 2. 443 echo "Listen 443" > test.out grep 'Listen *443' test.out | grep -v '#' Listen 443 The above worked fine but when the entry changes to the below the grep fails... (2 Replies)
Discussion started by: mohtashims
2 Replies

2. Shell Programming and Scripting

Unable to grep the process

I have user1 run a script called logginexpert.sh while has this line of code sleep 888I then login to another putty session with another user2 and try to grep for the logginexpert.sh process using ps -ef | grep exSunOS mymac 5.11 11.2 sun4u sparc SUNW,SPARC-Enterprise But, i dont get any... (20 Replies)
Discussion started by: mohtashims
20 Replies

3. UNIX for Dummies Questions & Answers

Unable to grep

I have a file with 2 lines of code Rome is in Romeo Romeo is in Rome How do I grep, so that only last line would be the outcome. sample output Romeo is in Rome I have tried with all possible greps but its resulting in both the lines in output. Please help. (6 Replies)
Discussion started by: gotamp
6 Replies

4. UNIX for Dummies Questions & Answers

unable to grep the reqd field

hi all, i have a data sm thg like this 28504 0 abc 148782859 42 101M nhmmmm ilopo abc 2345432 i want to get only the field which is just aftr abc i,e., 148782859, 2345432 i have used grep /abc\t/ filename to get that but its not working can any 1 help me out (5 Replies)
Discussion started by: anurupa777
5 Replies

5. Shell Programming and Scripting

unable to match grep pattern

Hi All, I am trying to select all files in a directory which are not with .gz extension . for which I am using below script , but its rejecting both .gz and .z extension files,as in each letter is considered separately. PFB ls -lrt | awk '{print $9}'| egrep "^IRAMS.*$" please suggest... (1 Reply)
Discussion started by: Jcpratap
1 Replies

6. Shell Programming and Scripting

unable to grep the running processes.

Hi All, We have a shell script(ODS_Load)which loads the data from perticular flat file to oracle table invoking sqlplus based on the parameter. When we execute the script(ODS_Load) independently, script is working fine and able to load the tables successfully. We invoke(ODS_Load) with... (1 Reply)
Discussion started by: Nagaraja Akkiva
1 Replies

7. Shell Programming and Scripting

Unable to grep control/non printable characters

Unable to grep: Able to grep: (11 Replies)
Discussion started by: proactiveaditya
11 Replies

8. Shell Programming and Scripting

Log file is not getting created & unable to grep error from it

Hi All, Below is my code,what I am trying to do is redirecting output of ftp to a log file & then greping the errors but here I am unable to grep "Permission denied" error only & also the corresponding log file is also not getting created. #!/bin/sh . cfg USER='abc' PASSWD='abc123' ... (4 Replies)
Discussion started by: ss_ss
4 Replies

9. Shell Programming and Scripting

grep or awk problem, unable to extract numbers

Hi, I've trouble getting some numbers from a html-file. The thing is that I have several html-logs that contains lines like this: nerdnerd, how_old_r_u:45782<br>APPLY: <hour_second> Verification succeded This is some of what I've extracted from a html file but all I really want is the number... (7 Replies)
Discussion started by: baghera
7 Replies

10. Shell Programming and Scripting

unable to grep the following pattern

I have the following line in file1 elif ; then now if i try to grep this using following command grep -e "elif ; then" file1 it is showing nothing... how to grep such patterns (2 Replies)
Discussion started by: suri
2 Replies
Login or Register to Ask a Question