【发布时间】:2014-02-05 16:36:00
【问题描述】:
我正在使用这些文件进行测试:
comp900_c0_seq1_Glicose_1_ACTTGA_merge_R1_001.fastq
comp900_c0_seq1_Glicose_1_ACTTGA_merge_R2_001.fastq
comp900_c0_seq2_Glicose_1_ACTTGA_merge_R1_001.fastq
comp900_c0_seq2_Glicose_1_ACTTGA_merge_R2_001.fastq
comp995_c0_seq1_Glicose_1_ACTTGA_merge_R2_001.fastq
comp995_c0_seq1_Xilano_1_AGTCAA_merge_R1_001.fastq
comp995_c0_seq1_Xilano_1_AGTCAA_merge_R2_001.fastq
我想获取在第一个 _(下划线)之前具有相同代码的文件,并将代码 R1 放在不同的输出文件中。输出文件应该按照代码调用,直到第一个_(下划线)。
-这是我的代码,但我在制作输出文件时遇到了麻烦。
#!/bin/bash
for i in {900..995}; do
if [[ ${i} -eq ${i} ]]; then
cat comp${i}_*_R1_001.fastq
fi
done
-我想要两个输出:
一个输出将包含以下所有行:
comp900_c0_seq1_Glicose_1_ACTTGA_merge_R1_001.fastq
comp900_c0_seq2_Glicose_1_ACTTGA_merge_R1_001.fastq
它的名字应该是comp900_R1.out
另一个输出将包含以下行:
comp995_c0_seq1_Xilano_1_AGTCAA_merge_R1_001.fastq
它的名字应该是comp995_R1.out
最后,正如我所说,这是一个小测试。我希望我的脚本能够处理许多具有相同特征的文件。
【问题讨论】:
-
只是出于好奇:为什么需要这个条件:
if [[ ${i} -eq ${i} ]]; then? -
而且,看来你只需要
comp${i} -
您对这个问题的期望是什么?
-
我期待有两个文件:第一个将有 comp900_c0_seq1_Glicose_1_ACTTGA_merge_R1_001.fastq 和 comp900_c0_seq2_Glicose_1_ACTTGA_merge_R1_001.fastq。第二个将有 comp995_c0_seq1_Xilano_1_AGTCAA_merge_R1_001.fastq。
-
也许我看错了你的问题。我以为你想将文件连接成新文件
comp900、comp995等?