将字符串与hdfs命令结合

时间:2019-01-16 23:58:39

标签: hadoop hdfs

我必须将许多文件从一个hdfs位置复制到另一个位置。我写了一个命令来识别“源”文件:

hdfs dfs -ls /archive/reporting/some_dir | awk '{print $6,$7,$8}' | grep 2019-01-1 

这为我提供了要复制的140多个文件的列表。与其将输出粘贴到文本编辑器中并在每行之前添加“ hdfs dfs -cp”,不如将我的“ ls”命令的输出添加到copy命令之前。因此,我想在一行中生成如下输出:

hdfs dfs -cp /archive/reporting/some_dir/file1
hdfs dfs -cp /archive/reporting/some_dir/file1
...
...

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以遍历单行代码的结果并做各种事情。就您而言:

for i in `hdfs dfs -ls /archive/reporting/some_dir | awk '{print $6,$7,$8}' | grep 2019-01-1`; do
   echo "hdfs dfs -cp $i"
done