如何在bash中同时重复两个for循环?

法特伯格

我正在尝试执行一个需要两个输入文件的命令,这两个文件都特定于每个样本。我的解决方案是使用两个 for 循环:

FILES=testgroup/*split.bam
TARGETS=testgroup/*intervals

for f in $FILES
do
for t in $TARGETS
do

IndelRealigner -Input1 $f Input2 $t Output $f.realigned.bam

done
done

但是当我在第二个 for 循环 ($t) 上执行这个 bash 循环时,第一个是常量,然后重复循环。

我需要同时循环输入(即 $f Sample1 和 $t Sample1、$f Sample2 和 $t Sample2)。

谢谢你的帮助。

编辑:

示例示例名称和相关的输入文件:

D8.1.112.fastqAligned.out.sam.rg_added_sorted.bam.dedup.bam.split.bam D8.1.112.fastqAligned.out.sam.rg_added_sorted.bam.dedup.bam.split.bam.intervals

同时,我已将两组文件移动到一个新目录中,以查看是否可以在单个数组中指定两个组?我不知道如何做到这一点。迄今为止:

files=testgroup/newdir    

for f in $files
do
   for t in $files
   do
   IndelRealigner -Input1 $f Input2 $t Output $f.realigned.bam
   done
done

任何进一步的帮助表示赞赏!

按钮

一种可能的解决方案:首先将文件和目标读入数组。然后使用一个循环同时迭代两个数组:

#!/bin/bash
files=($(ls testgroup/*split.bam))
targets=($(ls testgroup/*intervals))
len=${#files[@]}
for ((i=0;i<$len;i++))
do
  IndelRealigner -Input1 "${files[$i]}" Input2 "${targets[$i]}" Output "${files[$i]}".realigned.bam
done

但请记住:只有当目标与文件一样多时,这才有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在导轨中仅使用一个for循环同时遍历两个数组

如何在PHP中同时执行两个while循环?

如何在python中的for循环中同时检查两个条件?

如何在不同的进程中同时运行两个 asyncio 循环?

如何在Tkinter中同时运行两个图像循环

c - 如何在同一程序中同时运行两个无限循环

如何同时在php中执行两个foreach循环

如何在从python中的动态输入中删除重复项的同时组合两个列表

如何在R中同时grep两个词

如何在 Django 中同时获取两个模型

如何在uipickerview中同时旋转两个组件

如何在Python中同时写入两个CSV?

如何在JQuery中同时制作两个动画?

如何在reactjs中同时绑定两个方法

如何在 Laravel 中同时保存两个模型?

如何在bash中的一行中为循环运行两个命令?

如何在bash中的两个循环之间创建一对一关系?

如何在Linux(bash)中循环包含两个不同模式文件的列表?

如何在删除重复项的同时合并具有不同列号的两个表?

在python中同时循环两个for循环的问题

如何在Python中实现这两个循环?

如何在 JavaScript 中合并两个 for..of 循环?

如何在python中循环使用两个条件?

如何在函数中的两个列表之间循环?

如何在javascript中循环两个对象?

如何在Wordpress自定义帖子中不重复的情况下循环进入两个不同的DIVS

如何在C中使两个同时运行的无限循环?

如何消除重复观察,同时保留两个观察中的信息?

如何在Bash中逐行合并两个文件