Help to search multiple pattern in file with grep/sed/awk

Hello All,

I have a file which is having below type of data,

Jul 19 2011        |    123456
Jul  19 2011       |    123456
Jul 20 2011        |    123456
Jul  20 2011       |    123456

Here I wanted to grep for date pattern as below, so that it should only grep "Jul 20" OR "Jul 20" pattern only,

Jul 20 ---> Single space in between Month & Date
Jul  20 ---> Double space between Month & Date

Also I want to pass the Mon & DD through variables.

Plese advise how o do this.

 
mo="Jul"
da=20
awk -v d=$da -v m=$mo '$1==m && $2==d' input_file

Hi Thanks for your revert, I tried but this not working.

I wanted to search for below pattern,

Jul 20 ---> Single space in between Month & Date
Jul  20 ---> Double space between Month & Date

???

month=Jul
date=20
grep "$month $date"

OR with 2 spaces:

grep "$month  $date"

If the below does not work, post the required output format.

VAR="Jul"
VAR2="20"
sed '/'"${VAR}"' *'"${VAR2}"'/!d' inputfile

There is no output, please see below,

bash-2.03$ VAR="Jul"
bash-2.03$ VAR2="20"
bash-2.03$ sed '/^'"${VAR}"' *'"${VAR2}"'/!d' test.txt
bash-2.03$ echo $?
0

Please advise.

 
avalon:/disk3/upat/SCRIPTS>cat input_file
Jul 19 2011        |    123456
Jul  19 2011       |    123456
Jul 20 2011        |    123456
Jul               20 2011       |    123456
Jul                                20 2011 | 1111111
avalon:/disk3/upat/SCRIPTS>awk -v d=$d -v m=$m '$1==m && $2==d' input_file
Jul 20 2011        |    123456
Jul               20 2011       |    123456
Jul                                20 2011 | 1111111

Post, the output you are getting and OS version.

Please see output below,

bash-2.03$ uname -a
SunOS test 5.8 Generic_127721-03 sun4u sparc SUNW,Sun-Fire-15000
bash-2.03$ awk -v d=$DD -v m=$MM '$1==m && $2==d' input_file
awk: syntax error near line 1
awk: bailing out near line 1
bash-2.03$ nawk -v d=$DD -v m=$MM '$1==m && $2==d' input_file
bash-2.03$ cat input_file
 Jul 19 2011                    |    14145673
 Wed Jul 20 10:58:33 EDT 2011   |    14171345
 Wed Jul 20 14:15:16 EDT 2011   |    14156856
 Wed Jul 20 17:26:27 EDT 2011   |    14147096
 Wed Jul 20 23:04:24 EDT 2011   |    14182311
 Wed Jul 20 23:05:10 EDT 2011   |    14182304
 Wed Jul 20 23:42:02 EDT 2011   |    14190892
 Jul 19 2011                    |        NULL
 Wed Jul 20 10:58:33 EDT 2011   |        NULL
 Wed Jul 20 14:15:16 EDT 2011   |        NULL
 Wed Jul 20 17:26:27 EDT 2011   |        NULL
 Wed Jul 20 23:04:24 EDT 2011   |        NULL
 Wed Jul 20 23:05:10 EDT 2011   |        NULL
 Wed Jul 20 23:42:02 EDT 2011   |        NULL

---------- Post updated at 08:45 PM ---------- Previous update was at 08:42 PM ----------

Please see the output below,

bash-2.03$ uname -a
SunOS test 5.8 Generic_127721-03 sun4u sparc SUNW,Sun-Fire-15000

bash-2.03$ awk -v d=$DD -v m=$MM '$1==m && $2==d' input_file
awk: syntax error near line 1
awk: bailing out near line 1

bash-2.03$ nawk -v d=$DD -v m=$MM '$1==m && $2==d' input_file
 
bash-2.03$ echo $?
0

bash-2.03$ cat input_file
 Jul 19 2011                    |    14145673
 Wed Jul 20 10:58:33 EDT 2011   |    14171345
 Wed Jul 20 14:15:16 EDT 2011   |    14156856
 Wed Jul 20 17:26:27 EDT 2011   |    14147096
 Wed Jul 20 23:04:24 EDT 2011   |    14182311
 Wed Jul 20 23:05:10 EDT 2011   |    14182304
 Wed Jul 20 23:42:02 EDT 2011   |    14190892
 Jul 19 2011                    |        NULL
 Wed Jul 20 10:58:33 EDT 2011   |        NULL
 Wed Jul 20 14:15:16 EDT 2011   |        NULL
 Wed Jul 20 17:26:27 EDT 2011   |        NULL
 Wed Jul 20 23:04:24 EDT 2011   |        NULL
 Wed Jul 20 23:05:10 EDT 2011   |        NULL
 Wed Jul 20 23:42:02 EDT 2011   |        NULL

Oh God,

You changed the order!!!

try

 
MM="Jul"
DD=20
nawk -v d=$DD -v m=$MM '$2==m && $3==d' input_file
 
1 Like

Sorry ... I just overlooked the filed in my file. Thanks a lot !!! It worked perfectly.

I have used with "||" as well to search for

"$1 && $2" and "$2 && $3"
bash-2.03$ nawk -v d=$DD -v m=$MM '$2==m && $3==d || $1==m && $2==d' input_file
 Wed Jul 20 10:58:33 EDT 2011   |    14171345
 Wed Jul 20 14:15:16 EDT 2011   |    14156856
 Wed Jul 20 17:26:27 EDT 2011   |    14147096
 Wed Jul 20 23:04:24 EDT 2011   |    14182311
 Wed Jul 20 23:05:10 EDT 2011   |    14182304
 Wed Jul 20 23:42:02 EDT 2011   |    14190892
 Wed Jul 20 10:58:33 EDT 2011   |        NULL
 Wed Jul 20 14:15:16 EDT 2011   |        NULL
 Wed Jul 20 17:26:27 EDT 2011   |        NULL
 Wed Jul 20 23:04:24 EDT 2011   |        NULL
 Wed Jul 20 23:05:10 EDT 2011   |        NULL
 Wed Jul 20 23:42:02 EDT 2011   |        NULL
 Jul 20 2011                    |       14190892
 Jul  20 2011                   |       14182304

Thanks again for your help.