我在Hadoop中有这些文件,并希望创builddate大于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;}'
在linux中稳定sorting
如何比较bash中的两个范围列表?
Linux grep只有n,m个string
获得一些行
使用Awk处理每个logging具有不同固定宽度字段的文件
在unix中查找和删除(更新)
用SED或AWK替代date(或任何工作) – Linux的正则expression式
用awk将单行分成多行编号格式
将输入日期作为变量传递给awk表达式(通过-v选项):
dateA='2016-11-21' hdfs dfs -ls -t | awk -v dateA="$dateA" '{if ($6 > dateA) {print $8}}'
输出:
manpoc_pre message.txt
你可以尝试这样的事情:
首先确定从现在到2016-11-21之间的天数:
$ (( DAYS = ($(date +"%s") - $(date +"%s" -d "2016-11-21")) / ( 24 * 3600 ) )) $ echo $DAYS 108
接下来,使用该变量来查找文件:
find /my/directory -ctime -${DAYS} -type f
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。