2017-03-09 218 views
2

我在Hadoop中有這些文件,並且想要創建日期大於2016-11-21的所有文件的列表。獲取創建日期大於某個日期的文件的列表linux

-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;}' 

回答

2

傳遞輸入日期作爲可變進awk表達(通過-v選項):

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

輸出:

manpoc_pre 
message.txt 
0

你可以嘗試這樣的事情:

首先,德termine現在和2016年11月21日之間的天數:

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

接下來,使用該變量來查找文件:

find /my/directory -ctime -${DAYS} -type f 
相關問題