Issue with Grep


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Issue with Grep
# 1  
Old 11-20-2015
Issue with Grep

Hi guys,

Hope someone can help me with this - I'm sure it's fairly simple but it's driving me mad! (forgive the coding - still new on scripting - come from Windows)

I have the following coding for checking whether I want to include a line in a file:-

Code:
EXTRACT_Date=$(date --date="${PERIOD}" +"%a %b %_d")
more "${CHK_FILE}" | grep -F "${EXTRACT_Date}" > ${SRC_FILE}
echo "grep -F "${EXTRACT_Date}" > ${SRC_FILE}"
echo "${EXTRACT_Date}"

I have set PERIOD to 1 Oct.
Source file data is like this..
Code:
Thu Oct  1 05:50:03 2015 [pid 85454] CONNECT: Client "xxx.xxx.xxx.xxx"

I get the following results from the echo's..

Code:
grep -F Thu Oct 1 > /var/upload/edi/adminedi/Dev_Scripts/ftplog.txt
Thu Oct  1

So I can see that EXTRACT_Date has the correct format and value to match but I get no line extracted. The reason being the missing extra space in the Grep command. So, why does grep remove the extra space in Oct 1?

Last edited by Don Cragun; 11-23-2015 at 01:58 PM.. Reason: Remove COLOR tags; add CODE and ICODE tags.
# 2  
Old 11-20-2015
Please use code tags as required by forum rules!

We can't see multiple spaces in your code/result posts as the code tags are missing. I guess your source file has Oct 1 with one space, while the +"%a %b %_d" will have two. From man date: Try %-d (no padding).
# 3  
Old 11-20-2015
Hi RudiC,

Sorry, I missed the bit about code tags. Smilie


Anyway, the data has 2 spaces "Oct..1" which is why I used the %_d. When I echo the grep command, it shows only once space but the echo for the date value has 2 spaces so I know this is correct. Why does the grep only have one space? This prevents the match but I don't know to force the extra space into the grep.

Thanks
# 4  
Old 11-20-2015
Why don't you place the code tags NOW so we CAN see single/double spaces?

---------- Post updated at 16:01 ---------- Previous update was at 15:59 ----------

Click the "Edit" button to enter the code tags around code & results/data.
# 5  
Old 11-20-2015
Sorry - I thought it was ok on the reply. Here's the code again..
Code:
EXTRACT_Date=$(date --date="${PERIOD}" +"%a %b %_d")
more "${CHK_FILE}" | grep -F "${EXTRACT_Date}" > ${SRC_FILE}
echo "grep -F "${EXTRACT_Date}" > ${SRC_FILE}"
echo "${EXTRACT_Date}"

the data

Code:
Thu Oct  1 05:50:03 2015 [pid 85454] CONNECT: Client "194.115.88.90"

and the result

Code:
grep -F Thu Oct 1 > /var/upload/edi/adminedi/Dev_Scripts/ftplog.txt
Thu Oct  1

Hope I did it correctly this time..
# 6  
Old 11-20-2015
Difficult to understand. If I try that on my linux/bash, with the -x option set, I get:
Code:
EXTRACT_Date=$(LC_ALL=C date --date="${PERIOD}" +"%a %b %_d")
.
.
.
+ EXTRACT_Date='Thu Oct  1'
grep -F "${EXTRACT_Date}" file
+ grep -F 'Thu Oct  1' file
Thu Oct  1 05:50:03 2015 [pid 85454] CONNECT: Client "xxx.xxx.xxx.xxx"

i.e. it works!

Last edited by RudiC; 11-20-2015 at 11:30 AM..
This User Gave Thanks to RudiC For This Post:
# 7  
Old 11-23-2015
Hi RudiC,

Embarrassingly, the problem turned out to be nothing to do with the code! The issue was that I was using the wrong file! Smilie

Still, confirmation that the Grep was OK helped cause it made me look elsewhere in the coding.

Sorry to have wasted your time on that.

Thanks
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with grep

Hello, I have an input file that looks like so: LDLR LDLRAD4 VLDLR when I grep "LDLR" I get an output of: LDLR LDLRAD4 VLDLR Since all names have "LDLR" included within them, but all I want the output to be is LDLR I know it can work if I surround the words with pipes for... (5 Replies)
Discussion started by: Rabu
5 Replies

2. UNIX for Dummies Questions & Answers

Grep issue

HI, I have a command to check a license file. License_print. In that file you get the headlines and all different licenses. Now i want to have things extracted from it. so i do like following: license_print | grep -iw -e "user" -e "admin" But i donīt want all lines where user is... (11 Replies)
Discussion started by: Tzwaj
11 Replies

3. Shell Programming and Scripting

Grep issue

Hi Guys, I am new to shell scripting. Need help on grep command. I had a file called file.log which contain below statements. 12 Nov 2013 14:12:17,756 INFO security - Userid: raja, Saved File Instance, Name: , Registry: 23 Nov 2013 14:14:11,777 INFO security - Userid: raja, Saved... (7 Replies)
Discussion started by: Vinoth Kumar G
7 Replies

4. Shell Programming and Scripting

Issue in grep

i have following pattern in file s6:s2 s2:s4 s1:s2:s3:s4:s5:s6 s1 . . Now i want to find occurence of each record in file like s6:s2 occurs twice {once in first record and both occur in 3 record as well} so output should be s6:s2 2 s2:s4 2 s1:s2:s3:s4:s5:s6 :1 s1 : 2 ... (7 Replies)
Discussion started by: sharad.40216
7 Replies

5. Shell Programming and Scripting

Grep issue

Hi All I have a file containing following records: $HEW_TGT_DB2_USER=hbme_bi2 $prmAttunityUser=ais $DS_USER=hbme_bi2 $prmStgUser=hbme_bi2 $prmuser=hbme_bi2 $prmStgPass=hbme_bi2 $prmpwd=hbme_bi2 $prmAttunityUser=ais Say suppose the name of the file is test4.txt When i fire this... (2 Replies)
Discussion started by: vee_789
2 Replies

6. UNIX for Dummies Questions & Answers

Grep issue

more Hello.txt it was a sunny way and i was about to go home. I need to grep and redirect to a new file all the text between 'sunny' and 'go' string above. Note: There may be multiple lines in between the string i need to grep between. If there are multiple 'go' strings it should grep till... (9 Replies)
Discussion started by: mohtashims
9 Replies

7. Shell Programming and Scripting

grep issue

The below command is not working stackmem="$(pmap $1 | grep -i '' | awk '{print $2}'| tr -d ' K')" I need to grep strictly for ----> Regards, Mohtashim (2 Replies)
Discussion started by: mohtashims
2 Replies

8. Shell Programming and Scripting

Grep Issue

<record> <set> <termId>1234</termId> <termType>First</termType> </set> <set> <termId>5678</termId> <termType>Second</termType> </set> </record> This is saved in record.xml Hi I have this sample XML that i am grepping using a shell program. The objective of the task is - based... (7 Replies)
Discussion started by: revertback
7 Replies

9. UNIX for Dummies Questions & Answers

Issue with grep

I have a file that has the following: 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 591066 100.0 ... (5 Replies)
Discussion started by: Pablo_beezo
5 Replies

10. UNIX for Dummies Questions & Answers

issue with grep

using grep, i have a file emp.lst, and i want all those records where "S" or "s" (capital or small) is not there i used this grep emp.lst when i use grep emp.lst i am getting rows with S..but why negate (^) is not working? (3 Replies)
Discussion started by: soujanya_srk
3 Replies
Login or Register to Ask a Question