如何获取两个日期之间的所有日志文件,我的日志文件名称包含创建日期:
x-node0-1-22.09.2018
=>创建于2018年9月22日。
预先感谢
答案 0 :(得分:0)
ls -1|awk -F'[-.]' -v from='01.08.2018' -v to='01.10.2018'
'{split(from,f);from=f[3]f[2]f[1];
split(to,t);to=t[3]t[2]t[1];
d=$NF$(NF-1)$(NF-2)}d>=from&&d<=to'
此行应该起作用。
因为您的示例文件名不包含任何特殊字符,所以我很懒,并使用ls
结果作为输入。不推荐。
您可以更改from
和to
参数。
在日志文件目录下执行命令。
kent$ ls -1
x-node0-1-22.08.2018
x-node0-1-22.09.2018
x-node0-1-31.08.2018
x-node0-1-31.10.2018
kent$ ls -1|awk -F'[-.]' -v from='01.08.2018' -v to='01.10.2018' '{split(from,f);from=f[3]f[2]f[1];split(to,t);to=t[3]t[2]t[1];d=$NF$(NF-1)$(NF-2)}d>=from&&d<=to'
x-node0-1-22.08.2018
x-node0-1-22.09.2018
x-node0-1-31.08.2018
答案 1 :(得分:-1)
您可以使用awk命令,如以下示例所示,该命令从syslog读取1月21日至1月22日的日志
/ var / log $ awk'/ Jan 21 /,/ Jan 22 /'syslog
您可以通过以下链接阅读更多信息: https://coderwall.com/p/ueazhw/parsing-logs-with-awk