我正在尝试选择最后5个最新更新的文件,并使用bash脚本将它们复制到hdfs(hadoop)中的目标文件夹中。我有一个命令返回最近5个文件:
hdfs dfs -ls -R /user/myfolder | awk -F" " '{print $6" "$7" "$8}' | sort -k6,7 | tail -5
输出
/user/myfolder/example1.txt
/user/myfolder/example2.txt
/user/myfolder/example3.txt
/user/myfolder/example4.txt
/user/myfolder/example5.txt
下一步将这些文件移动到目标hdfs目录的好方法是什么?
编辑:
所以我发现hdfs dfs-cp命令可以接受多个参数,如下所示:
latest_files=$(hdfs dfs -ls -R /user/myfolder | awk -F" " '{print $6" "$7" "$8}' | sort -k6,7 | tail -5 | cut -d" " -f3)
hdfs dfs -cp $latest_files $target_directory
另外,我相信使用xargs的公认答案也是一个不错的选择。
1条答案
按热度按时间u7up0aaq1#
下面的命令
awk
&xargs
解决问题。完成命令验证: