shell - 通过 shell 删除 HDFS 上的文件,其中文件名包含低于给定值的数字
问题描述
我已经搜索了其他现有问题,但没有成功。
在 spark 作业结束时,我需要通过 sh 脚本进行一些清理。目标是删除名称中包含低于给定值的数字的任何文件。
例如,让我们考虑这个 HDFS 文件夹结构
myDirectory
myFile_20210315.csv
myFile_20210316.csv
myFile_20210317.csv
我想用参数 20210316 启动 SH 脚本,并且它只删除 myFile_20210315.csv。
到目前为止,我有这个命令能够隔离文件的数字部分,但我不知道下一步:
hdfs dfs -ls myDirectory/myFile*.csv | awk '{print $8}' | sed -e s/[^0-9]//g
解决方案
最终找到了解决方案。下面是脚本。
我称脚本为 ./myScript.sh 20210315
for f in `hdfs dfs -ls myDirectory/*.csv | awk '{print $8}'`;
do
echo Processing $f
fileNumberValue=`hdfs dfs -ls $f | awk '{print $8}' | sed -e s/[^0-9]//g`
if [ $fileNumberValue -lt "$1" ]; then
echo $fileNumberValue inferior to "$1" : deleting $f on HDFS
hdfs dfs -rm $f
fi
done
推荐阅读
- javascript - `import`语句的路径可以包含多个`/`吗?
- python - 使用 ffmpeg 连接文件夹中的所有 .mp4 文件
- java - 如何在不添加更多窗格的情况下在 ImageView JavaFx 中对图像切换进行动画处理
- python - QProcess 无法从 Telethon 的异步函数中读取
- python - 我在 PySpark 数据框中有一列(字符串数组)。如何打破数组并为数组中的每个字符串项创建单独的行?
- python - 如何聚类标签(在多标签分类问题中)大多一起出现在一个类中
- node.js - full-ICU 在传递 --icu-data-dir 节点选项时有效,但在使用 NODE_ICU_DATA 环境变量时无效
- react-native - pod install failed on macOS Big sur
- html - How to a collapse other menus when click on radio buttons in bootstrap
- python - How to lessen the python path?