У меня есть 2987 файлов, которые мне нужно обрабатывать партиями по 1000 файлов (наш планировщик SLURM не любит больше этого). Теперь у меня есть следующий bash код:
# collecting all the dataset files into an array called FILES
FILES=($(ls *.fast5))
echo ${#FILES[@]}
# select only the first 1000 items in the array
SUBSET=(${FILES[@]:0:1000}) #selecting elements 0 to 1000 --> 1000 elements
SUBSET=(${FILES[@]:1000:2000}) #selecting elements 1000 to 2000 --> 1987 elements
SUBSET=(${FILES[@]:2000:2987}) #selecting elements 2000 to 2987 --> 987 elements
#determine length of array Subset
echo ${#SUBSET[@]}
## determine which dataset to analyze
MYFILE=${SUBSET[$SLURM_ARRAY_TASK_ID]} ## identify which dataset is analyzed
## starting analysis
echo current dataset is: $MYFILE
Теперь моя проблема в том, что выбор элементов с 1000 по 2000 дает мне массив длиной 1987. Я понятия не имею, почему это так, или что не так в моем коде, почему я получаю массив, который длиннее 1000 элементов.
любые предложения, указатели и т. д. c приветствуются.