【发布时间】:2019-03-05 18:31:18
【问题描述】:
我在一个名为path/to/directory 的目录中有几个日志文件,它们在 Red Hat Enterprise 6 中长期列出后采用以下格式:
-rw-r——-. 1 root root 17096 Sep 30 11:00 logfile_YYYYDDMM_HHMMSS.log
每天都会生成几个这样的日志文件。我需要自动tac 最近修改的文件,而无需输入日志文件的确切名称。例如,我想做:
tac /path/to/directory/logile*.log | grep -m 1 keyword
它会自动将最近修改的文件tac 和grep 关键字从日志文件末尾的相反方向设置为运行得更快。这可能吗?
我遇到的问题是/path/to/directory 中总是有多个日志文件,并且我无法让 Linux 自动生成最近修改的文件 tac。任何帮助将不胜感激。
我试过了:
tac /path/to/directory/logfile_$(date +%Y%m%d)*.log
这将tac在当前日期创建一个文件,但我遇到问题的部分是在最新文件(由 YYYYMMDD 和 HHMMSS)上使用tac,因为可以在同一日期生成多个文件但其中只有一个可以是最新的,而最新的日志文件是我唯一关心的一个。我也不能使用符号链接.. 限制,叹息。
【问题讨论】:
-
不是答案,但这里有一些获取最新文件名的示例:stackoverflow.com/questions/1015678/…(
ls -ABt1 | head -n1似乎是您尝试做的最佳选择)。那么我猜你可以使用awk或类似的东西来调用tak和grep? -
@DaveyDaveDave,注意通常是bad idea to parse ls...
-
非常感谢。我相信您提供的指导是我遇到的问题的答案。它有效。
标签: tac