如何筛选下来基于时间的文件的一个子集?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何筛选下来基于时间的文件的一个子集?相关的知识,希望对你有一定的参考价值。
假设我已经做了很多工作削下来的文件列表中的目录下的10个文件,我很感兴趣。有数百个文件,我终于找到了我需要的人。
我既可以管出这个(管道从ls
)的结果,或我可以说我有这些值(脚本内这样做)的阵列。不要紧,无论哪种方式。
现在,该列表中,我想找到只昨天创建的文件。
我们可以像使用find -mtime 1
工具,都很好。但是,我们会怎么做,随着文件的目录中的一个子集?我们可以通过一个子集,通过find
到xargs
?
我可以用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)