如何通过文件模式和时间戳进行 zgrep?

如何通过文件模式和时间戳进行 zgrep?

我有一份包含几千个 gzip ( *.gz) 文件的列表,我想zgrep浏览这些文件,但我只想对最后修改时间戳在昨天(2012 年 11 月 22 日)或之后且文件名中包含字符串“widget”的文件运行它(通过这些文件进行过滤可将文件数量减少到大约 80 个)。

我没有看到可以添加到我的zgrep命令中的任何时间戳或文件模式参数 - 有什么想法吗?

例如:

eijdij8484.gz modified last on 11/20/2012 <== dont zgrep
dj8j4848ju-widget-dj8d4dj48d.gz modified last on 11/20/2012 <== dont zgrep bc of timestamp
ijdijdijdjii.gz modified last on 11/23/2012 <== dont zgrep bc no "widget" in filename
3ijdidj4-widget-jd9idj48.gz modified last on 11/22/2012 <== zgrep!

提前致谢!

答案1

类似这样的事情可能会让你走上正确的方向。

#!/bin/bash
    cutoff="20121122"
    for i in `find . -type f -name "*widget*.gz"; do
        modDate="`stat -c %y $i | awk '{print $1}' | sed 's/-//g'`"
        if [ ${modDate} < ${cutoff} ]; then
            command here on $i
        fi
    done

这是一个快速写的,因为我的妻子正在等我出门,所以尝试一下,我将尝试在今晚晚些时候进行更深入的测试。

编辑- 这是相对于当前日期浮动的“昨天”吗?还是固定的“11/22/12”?

相关内容