Solaris/Unix: как отображать только новые строки из файла журнала с момента последней проверки
Машина SunOS 5.10, поэтому она ведет себя немного иначе, чем Unix. У меня есть файл журнала ошибок, который заполняется несколькими пользователями. Я получаю свои записи по:
tail error.log | grep USER1
Я получаю результаты в формате:
Jan 16 09:06:18 XYZ USER1
Jan 16 09:22:12 XYZ USER1
Jan 16 11:22:30 XYZ USER1
Мне нужна команда, которая будет печатать только мои ошибки, которые были зарегистрированы после последней проверки, и ничего не печатать иначе. Я решил получить мою последнюю запись в другой файл:
grep USER1 error.log | tail -1 > temp_error.log
Оттуда я вырезал только первые символы, содержащие дату:
less temp_error.log | cut -c 1-15
Это дало бы мне результат:
Jan 16 11:22:30
Затем я использую команду "sed", чтобы получить все строки после этой в файле:
sed -e '1,/Jan 16 11:22:30/d' error.log | grep USER1
Это сработает, но, конечно, я должен вставлять дату каждый раз. Я решил автоматизировать это с помощью переменной, выполнив следующие команды:
LAST_ENTRY=`less temp_error.log | cut -c 1-15`
sed -e '1,/$LAST_ENTRY/d' error.log | grep USER1
Это не работает, потому что переменная не передана правильно второй команде, и я не понимаю, почему. Пожалуйста, помогите мне понять, что не так с этим.