get创建日期大于某个日期的文件列表

yptwkmov  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(369)

我在hadoop中有这些文件,想要创建日期大于的所有文件的列表 2016-11-21 .

-rw-r-----   3 pharpan1 hadoop      73439 2017-01-02 15:20 manpoc_pre
-rw-r-----   3 pharpan1 hadoop      12190 2017-02-02 19:42 message.txt
-rw-r-----   3 pharpan1 hadoop        374 2016-11-14 18:18 newbin
-rw-r-----   3 pharpan1 hadoop        614 2016-11-14 18:19 newcalcpi
-rw-r-----   3 pharpan1 hadoop        154 2016-11-21 20:12 newspoc

我尝试了下面的命令,但它正在打印所有文件。如何只得到满足条件的一个

dateA='2016-11-21'
 hdfs dfs -ls -t | awk '{if($6 -ge dateA) print $8;}'
c8ib6hqw

c8ib6hqw1#

你可以这样做:
首先,确定从现在到2016-11-21的天数:

$ (( DAYS = ($(date +"%s") - $(date +"%s" -d "2016-11-21")) / ( 24 * 3600 ) ))
$ echo $DAYS
108

接下来,使用该变量查找文件:

find /my/directory -ctime -${DAYS} -type f
4nkexdtk

4nkexdtk2#

将输入日期作为变量传递到 awk 表达式(通过 -v 选项):

dateA='2016-11-21'
hdfs dfs -ls -t | awk -v dateA="$dateA" '{if ($6 > dateA) {print $8}}'

输出:

manpoc_pre
message.txt

相关问题