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.