首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash循环写入下一个文件

bash循环写入下一个文件
EN

Stack Overflow用户
提问于 2019-12-23 14:41:39
回答 1查看 74关注 0票数 0

我试图在一个循环中处理多个bam文件,使用该标准,并且存在一个问题,即每个文件覆盖另一个文件。--bam xxx \是唯一会改变的行,xxx取决于目录中的bam文件。在这个例子中有三个,但并不总是这样。谢谢:)。

目录中的文件--不会总是3

代码语言:javascript
复制
xxx_00.bam
yyy_01.bam
zzz_02.bam

标准

代码语言:javascript
复制
for bam in *.bam ; do
 ${path_to_strelka}/bin/configureStrelkaGermlineWorkflow.py \
   --bam ${bam} \
   --referenceFasta $fasta \
   --callRegions $bed \
   --exome
   --runDir $dir
 $dir/runWorkflow.py -m local -j 20
done

期望的

代码语言:javascript
复制
for bam in *.bam ; do
 ${path_to_strelka}/bin/configureStrelkaGermlineWorkflow.py \
   --bam ${bam} \   --- xxx_00.bam ---
   --bam ${bam} \   --- yyy_01.bam ---
   --bam ${bam} \   --- zzz_02.bam ---
   --referenceFasta $fasta \
   --calRegions $bed \
   --exome \
   --runDir $dir
 $dir/runWorkflow.py -m local -j 20
done

试过--打印所需的,但不执行它--

代码语言:javascript
复制
printf -- "${path_to_strelka}/bin/configureStrelkaGermlineWorkflow.py \\\\\n%s\n\t\t--referenceFasta $fasta \\\\\n\t\t--callRegions $bed \\\\\n\t\t--exome \\\\\n\t\t--runDir ${dir}\n" \
"$(for f in *.bam; do printf -- "\t\t--bam %s \\\\\n"    "${f}"; done)"
${dir}/runWorkflow.py -m local -j 20
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-23 14:52:49

在我看来你根本不需要循环。

代码语言:javascript
复制
${path_to_strelka}/bin/configureStrelkaGermlineWorkflow.py \
    $( printf " --bam %s " *bam ) \
   --referenceFasta $fasta \
   --calRegions $bed \
   --exome \
   --runDir $dir \
$dir/runWorkflow.py -m local -j 20
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59457126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档