Solaris / Unix:自上次检查以来,如何仅显示日志文件中的新行

时间:2019-01-16 13:39:41

标签: bash unix sunos

该机器是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

这不起作用,因为该变量未正确传递给第二个命令,我也不明白为什么。请帮我了解这是怎么回事。

0 个答案:

没有答案