1

我有一个非常基本的问题,但我无法得到解决方案。我在同一个目录中有多个文件,我想连接每对文件。名称是:

Sample1_R1_L001.fastq Sample1_R2_L001.fastq Sample2_R1_L001.fastq Sample2_R2_L001.fastq Sample3_R1_L001.fastq Sample3_R2_L001.fastq

(ETC...)

我想要的结果是按样本连接,比如 cat Sample1_R1_L001.fastq Sample1_R2_L001.fastq > Sample1_concat.fastq

我试过这个循环,找到 . -name " _R?_ "|读取文件时;做 "$file" R1 *.fastq "$file"_R2_L001.fastq > "$file"_merged.fastq

但它没有用。有什么想法吗?

4

2 回答 2

0

这是我的做法:

for i in {1..4}; do echo cat Sample"$i"* > combined_"$i".txt; done

循环数字然后构建命令...获取实际文件名肯定是可能的,但是使用 shell,我只做可能工作的最简单的事情,即使这意味着部分强制循环。

将 1..4 替换为任何限制,shell 将为您将其扩展为所有不同的数字。

于 2014-07-29T15:51:22.120 回答
0
for i in {1..3}; 
do for j in 1 2; 
do cat 6692_S${i}_S${i}_*_R${j}_001.fastq.gz >  6692_S${i}_R${j}_concatenate.fastq.gz; 
done; 
done

#我的样品名称例如 6692_S1_S1_L001_R1_001.fastq.gz; 6692_S1_S1_L002_R1_001.fastq.gz

我认为您可以根据自己的需要进行调整。

于 2021-02-02T00:46:20.470 回答