如何筛选下来基于时间的文件的一个子集?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何筛选下来基于时间的文件的一个子集?相关的知识,希望对你有一定的参考价值。

假设我已经做了很多工作削下来的文件列表中的目录下的10个文件,我很感兴趣。有数百个文件,我终于找到了我需要的人。

我既可以管出这个(管道从ls)的结果,或我可以说我有这些值(脚本内这样做)的阵列。不要紧,无论哪种方式。

现在,该列表中,我想找到只昨天创建的文件。

我们可以像使用find -mtime 1工具,都很好。但是,我们会怎么做,随着文件的目录中的一个子集?我们可以通过一个子集,通过findxargs

我可以用for循环做到这一点很容易地。不过我很好奇,如果你聪明的人知道一个班轮的。

答案

如果他们在一个数组:

files=(...)
find "${files[@]}" -mtime 1

如果他们被管道中:

... | xargs -d'\n' -I{} find {} -mtime 1

注意,第二个将用于这是有点低效率的每个文件运行一个单独的find命令。

如果任何项目是目​​录,你不希望他们的内部搜索,添加-maxdepth 0禁用find的递归。

另一答案

另一种选择,不会递归,虽然我只用约翰的find解决方案,如果我是你。

$: stat -c "%n %w" "${files[@]}" | sed -n "
     / $(date +'%Y-%m-%d' --date=yesterday) /{ s/ .*//; p; }"

stat将打印文件的名称和创建日期在数组中。 该sed“里grep”你想要的日期和剥离打印文件名前的最新信息。

以上是关于如何筛选下来基于时间的文件的一个子集?的主要内容,如果未能解决你的问题,请参考以下文章

如何进行变量筛选和特征选择(三)?交叉验证

R语言基于DALEX包进行特征筛选(feature selection)

R语言基于机器学习算法进行特征筛选(Feature Selection)

R语言基于Boruta进行机器学习特征筛选(Feature Selection)

R语言基于线性回归(Linear Regression)进行特征筛选(feature selection)

模型特征选择:用简单模型为复杂模型筛选特征