hadoop fs -ls $ {DIRECTORY} | sort -k 6 | head -n -120 | awk '{if ($ 5 == 0) print $ 8}' | xargs hadoop fs -rm
Я пытаюсь перечислить файлы в каталоге, отсортировать их по отметке времени, пропустить последние 120 файлов и удалить ненулевые файлы в остальном. Есть ли способ, по которому я могу пропустить часть fo -rm hadoop, когда нет файлов с нулевым байтом?Выполнение команды по трубопроводу при выполнении условия
Или можно выполнить ту же реализацию с использованием метки времени (удаление файлов с нулевым байтом, которые создаются за 30 минут до последнего файла).
Почему вы хотите, чтобы пропустить его? Если это связано с тем, что оно создает ошибку, вы можете либо перенаправить ошибки в/dev/null, либо создать пустой, старый, пустой файл перед запуском (используя 'touch'). –