shell 遍历 hdfs上的文件目录
背景:
需要批量把hdfs上某个目录中的所有以.pending 结尾的文件,去掉.pending后缀。主要原因是建立的hive外表无法读取.tmp或.pending的文件,所以需要去掉后缀。
hdfs上文件的结构是根目录/data/test/flink/ttengine_predict/下有dt=2017-12-28的天级目录,在天级目录下会有hour=00-23的24个小时级目录,文件都在小时级目录中。
#!/bin/bash
#print the directory and file
hadoop fs -ls /data/abc/flink/ttengine_predict/dt=2017-12-27/ | awk '{print $8}' > files0.txt
#循环遍历,提取所需数据
cat./files0.txt | while read line
do
echo "$line"
hadoop fs -ls $line | awk '{print $8}' > files1.txt
cat./files1.txt | while read fname
do
echo "$fname"
_path=`echo $fname | awk -F'.' '{print $1}'`
hadoop fs -mv $fname $_path
#echo $_path
done
done
【shell 遍历 hdfs上的文件目录】
推荐阅读
- Shell-Bash变量与运算符
- Linux|109 个实用 shell 脚本
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- Xshell5|Xshell5 远程连接本地虚拟机Ubuntu16
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- for循环遍历数组
- 集合框架(集合嵌套存储和遍历元素的案例代码实现)
- adb|adb 相关命令
- iOS|iOS 高效开发必备技巧之自动化打包(shell xcode11 上传App Store 蒲公英等平台)
- 【2020-02-25】leetcode|【2020-02-25】leetcode shell