Shell Script | Parse log file after a given date and time stamp

I am developing one script which will take log file name, output file name, date, hour and minute as an argument and based on these inputs, the script will scan and capture all the error(s) that have been triggered from a given time. Example: script should capture all the error after 13:50 on Jan 28

Currently, regular expression of search pattern is not working when I am parsing the log file.

Sample Log file data is like:

####<Jan 28, 2016 13:53:24 PM UTC> <JDBC> <test.machine.name> <admin1> <[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <671f2e06-228c-4aa8-b8e7-dfef4f6937cd-0000057e> <1453739835418> <BEA-001153> <Forcibly releasing inactive/harvested connection  [weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection-AdminDS-6023, oracle.jdbc.driver.LogicalConnection@4e4150d1]" back into the data source connection pool "AdminDS", currently reserved by: java.lang.Exception

So, I have to capture the Exception from the log file..

MIN=`date +%M`
ERR_STR="####<Jan 28, 2016 13:[$MIN-59]:*Exception$"
LINE_NUM=`grep -n "$ERR_STR" admin.log | head -n 1 | cut -f1 -d$'\n' | awk '{ print $1}'`
LINE_NO=${LINE_NUM%%:*}
echo "LINE_NO=$LINE_NO"

I am getting null value of LINE_NUM variable. Can someone help me to get the correct search pattern for this problem.

It doesn't work like that. You can't grep a range (like "after a point in time") but exact matches, and be it of regexes.
And, your regex in above would look like [23-59] which means exact matches of 2, 3, 4, 5, 9 with a single digit between two : in the string.
You'll need a more powerful tool like awk , perl , ...

@RudiC: Thank you for the reply. I am new to Unix.. So could you please give me the example of awk or perl for how to do it.