Bash:对于具有两个语句的循环,第一条语句作为第二条语句的输入

时间:2019-02-20 16:23:02

标签: bash for-loop echo

我正在处理几个.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循环中如何将一个输入传递给下一个语句,你们中的任何人是否有任何建议?谢谢吗?

0 个答案:

没有答案