Я пытаюсь просмотреть журнал определенных сообщений за последний час. Журналы отформатированы следующим образом:
[1/18/19 9:59:13:791 CST] <Extra text here...>
У меня были проблемы с проведением сравнения дат с помощью awk, поэтому я подумал о том, чтобы перейти в эпоху и сравнить. Я беру поле 1 и вырезаю миллисекунды из поля 2 и удаляю []
(хотя, думаю, я мог бы просто сделать [
для своих целей).
while read -r line || [[ -n "$line" ]]
do
log_date_str="$(awk '{gsub("\\[|\\]", "");print $1" "substr($2,1,length($2)-4)}' <<< "$line")"
log_date="$(date -d "$log_date_str" +%s)"
[[ $(($(date +%s)-$log_date)) -le 3600 ]] && echo "$line"
done < /path/to/file
Когда я пытаюсь запустить этот файл журнала, я получаю эту ошибку:
date: invalid date `************ S'
-bash: 1547832909-: syntax error: operand expected (error token is "-")
Принимая одну дату, например «18.01.19 9:59:13» работает с преобразованием даты в эпоху, но я не уверен, куда идти с этой ошибкой.