Самый быстрый способ удалить файлы с размером 0 - PullRequest
0 голосов
/ 20 ноября 2018

Я ищу самый быстрый способ удаления файлов размером 0 с помощью bash.

У меня есть сотни тысяч файлов с размером 0 (вместе с ценным выводом) в один выходной каталог изкоманда grep запускается параллельно с GNU.Когда grep находит совпадение, выходной файл содержит информацию.Когда grep не находит соответствия, выходной файл пуст.

parallel -j $numcores "grepfunction {} > output_{}.fastq" ::: "${input_array[@]}"

Я использую следующее для удаления пустых файлов, но я хотел бы найти более быстрый вариант.При поиске большинства найденных решений используйте похожие команды на основе поиска, которые работают с одинаковыми скоростями.

find results2/ -size 0 -delete

Как указано в комментарии, я также попробовал следующее

find ./results2 -size 0 -print0 |xargs -0 rm --

Itкачественно медленный, но я буду тестировать и сообщать.

Любые предложения очень ценятся.

1 Ответ

0 голосов
/ 21 ноября 2018

(Это должен быть комментарий, но его слишком сложно прочитать как комментарий).

Если вы собираетесь снова запускать задания, вы можете включить его в процесс создания файла:

parallel -j $numcores "grepfunction {} > output_{}.fastq ||
  rm output_{}.fastq" ::: "${input_array[@]}"

Я предполагаю, что функция grep возвращает true, если совпадение (как grep делает).

...