我正在尝试在Mac OS X上读取过去一小时内所有记录的system.log文件。我已经搜索了其他问题,但是他们的解决方案都没有对我有用,可能是因为我在Mac OS X上?
我可以使用awk
命令在system.log文件中读取下面代码中两个日期/时间之间列出的所有记录。然后将其写入文本文件并阅读其内容以供进一步分析。
awk '$0 >= "Nov 11 09:15:00" && $0 <= "Nov 11 10:15:00"' /var/log/system.log > newfile.txt
但是我希望能够使用当前时间和当前时间(1小时)自动计算时间。
我能够使用此代码显示当前时间和当前时间 - 1小时。
now=$(date +"%b %d %H:%M:%S")
hourago=$(date -v-60M "+%b %d %H:%M:%S")
但无法在awk
声明中找到使用此方法。
非常感谢任何帮助!
答案 0 :(得分:0)
尝试类似的内容:
awk 'BEGIN {now=system("date +\"%b %d %H:%M:%S\"")}'
答案 1 :(得分:0)
你可以尝试
awk 'BEGIN {now=strftime("%b %d %T")}'
%T
是%H:%M:%S
答案 2 :(得分:0)
您可以使用strftime
打印当前时间。以及strftime
和systime
的组合,以便在前一个小时内完成
例如用法
$ awk 'BEGIN {now=strftime("%b %d %T");hourago=strftime("%b %d %T", systime()-3600); print now, hourago}'
Nov 11 19:11:22 Nov 11 18:11:22
它的作用??
systime()-3600
systime()
打印自Epoch以来经过的秒数。 -3600
会减少一小时。 strftime
返回相应时间的时间,即比当前时间小{1}}