如何按日期顺序grep文件

时间:2018-10-14 16:15:18

标签: bash

我可以在目录中列出Python文件,从最近更新到最新的

ls -lt *.py

但是我该如何按顺序grep这些文件?

我知道一个人绝对不要尝试解析ls的输出,因为这样做是非常危险的事情。

1 个答案:

答案 0 :(得分:8)

您可以使用此管道通过gnu实用程序来实现此目的:

find . -maxdepth 1 -name '*.py' -printf '%T@:%p\0' |
sort -z -t : -rnk1 |
cut -z -d : -f2- |
xargs -0 grep 'pattern'

这将处理带有特殊字符的文件名,例如空格,换行符,glob等。

  1. find查找当前目录中的所有*.py文件,并显示修改时间(纪元值)+ : +文件名+ NUL字节
  2. sort命令在时间戳的第一列上执行反向数字排序
  3. cut命令从输出中删除第一列(时间戳)
  4. xargs -0 grep命令在每个文件中搜索pattern