regex - 使用 grep 列出目录中 10 小时内更改的文件

标签 regex bash grep

我从 here 找到了这个练习

使用 grep 列出主目录中 10 小时内更改的文件,但忽略目录。

使用 find 似乎微不足道命令,但我如何使用 grep命令查找过去 10 小时内更改的文件?

谢谢!

最佳答案

好吧,这很令人厌恶,但它是一种练习,我很好奇。正则表达式可能太简单,但它在我的测试用例中有效。这里的“技巧”是我使用“stat”而不是“ls”。使用“stat”,您可以请求特定字段(包括上次修改日期)并格式化输出。在这里,我获取当前时间戳,返回 10 小时,然后以字符串形式收集针对模式格式化的统计信息,通过 grep 修改日期时间戳和文件名:

sh-3.2$ date "+%s"
1373170496

sh-3.2$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1373170496-36000
1373134496

sh-3.2$ stat -f"%Sp %m %N" * | grep "^[\-].*13731[3-7][0-9][0-9][0-9][0-9].*$"
-rw-r--r-- 1373168941 fileAB
-rw-r--r-- 1373168944 fileAC

其中 fileAB 和 fileAC 是我触及的一些代表性数据的两个空文件。匹配显示统计输出,手册页对此进行了更好的解释。

关于regex - 使用 grep 列出目录中 10 小时内更改的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17508812/

相关文章:

linux - vagrant - .bashrc 导出正确,但变量不正确

regex - Linux - 根据带有标题和尾部的关键位置对文件进行排序

bash - grep 文件针对仅包含数字的列表

regex - 使用正则表达式匹配字符串

regex - 有没有一种有效的方法可以从 Postgres 中的列值中抓取子字符串?

linux - 读取子文件夹中的特定行并计算平均值

java - Regex/Java - 如何捕获动态表中字符串后面的五位数字

linux - 从 shell 到 docker 容器执行多个命令

regex - 检查字符串中是否有日期并提取字符串的一部分

javascript - 匹配 Mongoose 中带或不带 http(s) 或 www 的任何 url