переименовать имя файла fastq.gz

Используйте xargsс -n 1, что означает «передавать только один аргумент при каждом вызове утилиты».

Что-то вроде:

printf '%s\n' file*.txt | xargs -n 1 -P 100 perl dataProcessing.pl

, который предполагает, что имена файлов не содержат буквальных символов новой строки.

Если у вас есть GNU xargsили реализация xargs, которая понимает-0(для чтения nul -аргументов с разделителями, что позволяет использовать имена файлов с символами новой строки )и -r(, чтобы не запускать утилиту с пустым списком аргументов, когда file*.txtничему не соответствует и nullglobдействует ), вы можете сделать

printf '%s\0' file*.txt | xargs -r0 -n 1 -P 100 perl dataProcessing.pl

Обратите внимание, что оба этих варианта могут запускать до 100 параллельных экземпляров скрипта, что может быть не совсем то, что вам нужно. Вы можете ограничить его до разумного числа, связанного с количеством ЦП на вашем компьютере (или связанным с общим объемом доступной оперативной памяти, разделенным на ожидаемое использование памяти для каждой задачи, если она привязана к памяти ).

0
03.12.2019, 19:24
1 ответ

Здесь у вас есть mvвозможность:

for f in *_GWU_*.gz; do 
  mv "$f" "${f/_GWU_/.GWU.}"
done
1
28.01.2020, 02:38

Теги

Похожие вопросы