我有一个hdfs目录,里面有很多文件和目录。
-rw-rw-rw- 3 root xyz <filesize> 2015-04-12 00:34 file1
-rw-rw-rw- 3 root xyz <filesize> 2015-04-11 11:34 file2
-rw-rw-rw- 3 root xyz <filesize> 2015-04-09 09:54 file3
drwxrwxrwx 3 root xyz 0 2015-04-02 00:34 dir
我有一个awk脚本,它使用
过滤列表中的文件awk '{ if($1 !~ /d.*/ ) {print $0}}'.
我在c ++函数中使用它,它有两个date(yyyy-mm-dd)
和time (hh:mm:ss)
格式的时间戳。
我想把条件放在&#39;如果&#39; &#39; awk&#39;它可以过滤位于两个时间戳之间的文件。
我试过
($6 >= startDate) && ($6 <= endDate) && ($7 >= startTime) && ($7 <= endTime)
,
但是这没有按预期工作。我是awk的新手。
答案 0 :(得分:0)
您可以使用find
来简化此操作。
find . -newermt "$dt1" ! -newermt "$dt2"
这是我用来测试的shell脚本。如果您可以从C ++代码中传递参数,则只需使用find命令即可将其缩短为一行。
# Date 1
startDate=2015-04-11
startTime=21:10:00
dt1="$startDate $startTime"
# Date 2
endDate=2015-04-11
endTime=22:10:00
dt2="$endDate $endTime"
find . -newermt "$dt1" ! -newermt "$dt2"
注意:我假设,startdate和starttime一起使用,enddate和endtime一起使用。但你可以自由选择。