Я пытаюсь выбрать последние 5 последних обновленных файлов и скопировать их в целевую папку в hdfs (было oop) с помощью сценария bash. У меня есть эта команда, которая возвращает последние 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 - тоже хороший выбор.