-4
Я хотел бы создать bash
сценарий, который сравнивает дату каждой строки в лог-файл в текущей даты и если разница составляет более 1 день, затем он печатает соответствующую строку в другой файл.Match дата шаблон из файла журнала, сравнить его с текущей датой и распечатать соответствующую строку
Можете ли вы поддержать?
Ниже приведен образец журнала:
2016-09-29 23:40:14 GST;2016-09-29 23:40:14 GST;faultManager:[email protected][email protected]@[email protected]@[email protected]|alarm-2632-3-698;
2016-11-01 07:10:51 GST;2016-11-01 07:10:51 GST;faultManager:[email protected][email protected]@[email protected]@[email protected]|alarm-2632-3-698;
2016-11-01 07:10:51 GST;2016-11-01 07:10:51 GST;faultManager:[email protected][email protected]@[email protected]@[email protected]|alarm-2632-3-698;
2016-11-01 07:10:51 GST;2016-11-01 07:10:51 GST;faultManager:[email protected][email protected]@[email protected]@[email protected]|alarm-2632-3-698;
2016-11-01 11:26:58 GST;2016-11-01 11:26:58 GST;faultManager:[email protected][email protected]@[email protected]@[email protected]|alarm-2632-3-698;
2016-11-03 10:00:08 GST;2016-11-03 10:00:08 GST;faultManager:[email protected][email protected]@[email protected]@[email protected]|alarm-2632-3-698;
Вот что я реализовали до сих пор:
IFS=$'\n' read -d '' -r -a lines < /cygdrive/f/Script_X2/Final/Test/ActiveX2Alarms2.log
for i in "${lines[@]}"
do
echo $i > /cygdrive/f/Script_X2/Final/Test/abcd.log
toDate=`awk -F";" '{print $1}' /cygdrive/f/Script_X2/Final/Test/abcd.log`
echo $toDate
toDate2=`date -d"${toDate}" +'%Y-%m-%d'`
echo "toDate2: $toDate2"
currentDate=`date +'%Y-%m-%d'`
echo "currentDate: $currentDate"
diff=`$currentDate - $toDate`
echo $diff
if [ `$currentDate - $toDate2` -gt 1 ];
then
awk -F";" '{print $4}' /cygdrive/f/Script_X2/Final/Test/abcd.log >> SiteIDs_extracted.log
fi
done
В файле журнала есть две даты. '2016-09-29 23:40:14 GST; 2016-09-29 23:40:14 GST;' Какая дата должна быть сопоставлена с текущей датой, или оба они одинаковы? – AbhiNickz
отредактировал вопрос и добавил код, который я сделал до сих пор, обе даты одинаковы, поэтому рассмотрим первый. –
Проблема в том, что вы думаете о некоторых командах, например 'diff = \' $ currentDate - $ toDate \ ''. Это должно сообщать хотя бы об ошибке. Думаете ли вы, что эта команда получает разницу в днях с двух дат? – Jdamian