是否使用Bash显示过去X天/var/log/messages?

是否使用Bash显示过去X天/var/log/messages?,bash,sorting,message,Bash,Sorting,Message,在BASH中,我想不出一个好方法来实现这一点,但我只想在/var/log/messages*中看到过去30天的条目。对我来说,问题是我如何做到这一点,只有一个月和一天。例如: Sep 2 14:26:13 <SOME ENTRY> Sep 4 14:26:13 <SOME ENTRY> Sep 9 14:26:13 <SOME ENTRY> Sep 14 14:26:13 <SOME ENTRY> etc.. sep214:26:13 九月四日

在BASH中,我想不出一个好方法来实现这一点,但我只想在/var/log/messages*中看到过去30天的条目。对我来说,问题是我如何做到这一点,只有一个月和一天。例如:

Sep 2 14:26:13 <SOME ENTRY>
Sep 4 14:26:13 <SOME ENTRY> 
Sep 9 14:26:13 <SOME ENTRY>
Sep 14 14:26:13 <SOME ENTRY>
etc..
sep214:26:13
九月四日14:26:13
九月九日14:26:13
九月十四日14:26:13
等
有什么想法吗?救命啊!哈哈

我想这很接近。这将为您提供一个经过排序的条目列表(最近的第一个条目)到8月初。根据您运行它的时间,它将给您最多60天而不是30天。平均来说,我想这会给你45英镑左右。另一个缺点是,随着日期的推移,您需要调整管道末尾的
grep
语句

sort -k1Mr -k2nr <file> | grep -E "Aug|Sep"
sort-k1Mr-k2nr | grep-E“八月|九月”
——这很管用——但很难看-- --仅打印每个循环迭代中符合日期的搜索(即最后X num天) ((i=0;i>${TEMPFILE})的

完成
sort-k1,1M-k2,2n${TEMPFILE}| uniq>>${LOGFILE}
有点晚,但是

    egrep "^$(date '+%b %e' -2d)" /var/log/messages

你采取了什么特别的方法?你已经尝试过什么代码?你遇到过什么错误吗?是的,我在过去30天中的每一天都使用了for循环和grep'd,但这是一个不同的时间戳。所以我尝试了这个方法,但它似乎不起作用。for((I=0;I>${LOGFILE}完成#——这很有效——但很难看——#——只打印满足((i=0;i>${TEMPFILE}完成排序-k1,1M-k2,2n${TEMPFILE}| uniq>>${LOGFILE})的每个循环迭代中的日期(即最后X num天)的搜索基本上,在这一步之前,我会生成一个值列表。然后我将它与过去30天的循环进行比较。但是你必须删除重复项,因为8月1日和8月15日将返回相同的结果。
    egrep "^$(date '+%b %e' -2d)" /var/log/messages