|
UNIX for Beginners Questions & Answers If you're not sure where to post a Unix or Linux question, post it here. All unix and Linux beginners welcome in this forum! |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
||||
|
||||
How to grep variable in shell script?
Hi Team, I am trying to grep date in a file but it is not working Code:
#!/bin/bash d=`date "+ %Y%m%d %H:%M"` cd /scripts /bin/rm -f test1 cat /var/logs/File.txt.0 |grep $"d" >v.txt instead it is showing the complete file output. kindly suggest how should i grep this variable it works fine if I search manually Code:
cat /var/logs/File.txt.0 |grep "20180321 18:54"| head [20180321 18:54:03.196000] Module: 1 Aff.Obj: Info: [20180321 18:54:17.074395] Module: j: 10.239.128.10:6789 Info: [20180321 18:54:33.197000] Module: scriptor Last edited by scriptor; 4 Weeks Ago at 09:44 AM.. Reason: added my observation |
Sponsored Links | ||
|
#2
|
||||
|
||||
Try "$d".
|
Sponsored Links | ||
|
#3
|
||||
|
||||
Code:
#!/bin/bash d=`date "+ %Y%m%d %H:%M"` cd /scripts /bin/rm -f test1 fgrep "${d}" /var/logs/File.txt.0 >v.txt You DON'T need to cat a file into grep - grep can pick up a file itself. You got $d wrong. It should have been "$d" or preferably (as I have put) "${d}". You put $"d". I used fgrep here instead of grep as that searches for strings, rather than regular expressions. Andrew |
#4
|
||||
|
||||
Hi Andrew/Rudic, I tried both the option suggested by you. however I am not getting any output. please suggest. Code:
# set -x # cat /var/logs/File.txt.0 |grep "${d}" | head + grep ' 20180322 11:56' + head + cat /var/logs/File.txt.0 Code:
# set -x # echo $d + echo 20180322 11:56 20180322 11:56 # fgrep "${d}" /var/logs/File.txt.0 | head + head + fgrep ' 20180322 11:56' /var/logs/File.txt.0 # |
Sponsored Links | |
|
#5
|
||||
|
||||
You have a leading space in d that doesn't seem to exist in your file.
|
Sponsored Links | |
|
#6
|
||||
|
||||
Hi I don't see any space in my file. also I tried again still not working. Code:
#d=`date "+ %Y%m%d %H:%M"` ++ date '+ %Y%m%d %H:%M' + d=' 20180322 14:14' # # # cat /var/logs/File.txt.0 |grep "$d" + grep ' 20180322 14:14' + cat /var/opt/fds/logs/EventLogFile.txt.0 # Last edited by scriptor; 4 Weeks Ago at 04:51 AM.. Reason: added tagg for code |
Sponsored Links | |
|
#7
|
||||
|
||||
Quote:
Quote:
Try this instead: Code:
d=`date "+%Y%m%d %H:%M"` Andrew |
The Following User Says Thank You to apmcd47 For This Useful Post: | ||
scriptor (4 Weeks Ago) |
Sponsored Links | ||
|
![]() |
Thread Tools | Search this Thread |
Display Modes | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Unable to pass shell script variable to awk command in same shell script | Ashunayak | Shell Programming and Scripting | 2 | 01-27-2014 12:04 PM |
Issue with passing variable to Grep in a shell script | racshot65 | Shell Programming and Scripting | 1 | 08-25-2011 09:48 AM |
assign awk's variable to shell script's variable? | tiger2000 | Shell Programming and Scripting | 4 | 04-13-2010 03:53 PM |
Shell script / Grep / Awk to variable and Loop | Spoonless | Shell Programming and Scripting | 0 | 01-26-2010 08:11 AM |
Grep results to store in a shell variable | jojan | Shell Programming and Scripting | 3 | 07-26-2007 12:44 PM |
|