Loading...

linux中 hdfs结合awk删除某个日期前的文件

 

 首先可以查看hdfs文件,

hadoop fs -ls /user/yankang02

 

结合日期是第六个属性,那么awk则选择$6

执行后得到

hadoop fs -ls /user/yankang02 | awk 'BEGIN{ days_ago=strftime("%F", systime()-30*24*3600) }{ if($6<"days_ago"){printf "%s\n", $8} }'

只得到8-8之前的文件

 

 

再根据文件目录遍历去删除所有的文件

# shell 实现
old_version=$(hadoop fs -ls /user/yankang02 | awk 'BEGIN{ five_days_ago=strftime("%F", systime()-30*24*3600) }{ if($6<five_days_ago){printf "%s\n", $8} }')
arr=(${old_version// / })
for version in ${arr[@]}
do
hadoop fs -rmr $version
done

posted @   严康  阅读(5164)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示
主题色彩