Bash: цикл с двумя операторами, первые операторы в качестве входных данных для второго - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над несколькими файлами .fasta, в названии которых содержится chr_start_end.fasta, который я хочу перебрать, а затем извлечь индивидуальный размер для каждого файла fasta.Затем я хочу использовать размер в качестве входных данных для другой команды для каждого файла fasta, поэтому в том же цикле for.

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

echo "chr10_126777139_126791124.fasta" | awk -F'[_.]' '{print $3-$2}'

, что дает = 13985

Затем я хочу дать 13985 в качестве входных данных для инструмента сборки генома, называемого canu.Вот так

canu -assemble -p asstest -d . -genomeSize=13985 -nanopore-raw chr10_126777139_126791124.fasta

Я пробовал это до сих пор, но я не могу заставить его работать должным образом.

for f in *.fasta; do Gen_size=$(echo "$f" | awk -F'[_.]' '{print $3-$2}') canu -assemble -p asstest -d . genomeSize=$Gen_size -nanopore-raw $f; done

Я хочу сделать это для нескольких файлов .fasta одновременно,У кого-нибудь из вас есть предложения о том, как передать один вход в следующий оператор в том же цикле for?Спасибо

...