wolverine777
@wolverine777

Как написать bash скрипт который выполняет все файлы что в папке?

Привет,

Мне нужно написать скрипт который будет запускать несколько файлов, находящиеся в одной папке (разом или один за другим - это не важно). file1.fastq, file2.fastq, file3.fastq и так далее при помощи модуля fastqc (это прога такая в биоинформатике если кто не в теме (я и сам про нее позавчера узнал..))

Скрипт который запускает один файл работает вполне себе:
#!/bin/bash
#SBASH --time=20:00:00

module load nixpkgs/16.09
module load fastqc/0.11.8

fastqc /home/blabla/files/file1.fastq
-o /home/outfiles


Однако же в папке /home/blabla/files/ таких файлов 50 штук - в принципе для каждого файла можно было бы написать отдельно строчку но это глупости )))

Таким образом охота написать цикл но пока только получается список файлов вывести:

find -name '*.fastq' | awk '{printf("fastqc \"%s\"\n", $0)}'


Спасибо!
  • Вопрос задан
  • 297 просмотров
Пригласить эксперта
Ответы на вопрос 3
Как вариант:

find /home/blabla/files/ -maxdepth 1 -name '*.fastq' -exec fastqc {} -o /home/outfiles \;
Ответ написан
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
for file in $(find /home/blabla/files/ -name '*.fastq')
do
  fastqc "$file" -o /home/outfiles
done
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Едрить, старый топорный метод:
cd /blabla
list=`ls -1 *.fastq`

for onelist in $list
 do
   fastqc $onelist -o /home/outfiles
 done
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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