700個のファイルがあるフォルダがあります(350人、各人はR1とR2ファイルが2つあります)。
HI.2622.001.Index_16.ED16_KS1W9-3_342_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_16.ED16_KS1W9-3_342_R2.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_19.ED18_ND1W27-2_288_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_19.ED18_ND1W27-2_288_R2.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_21.ED20_SD1W11-7_237_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_21.ED20_SD1W11-7_237_R2.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_2.ED2_KS2W24-7_43_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_2.ED2_KS2W24-7_43_R2.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
それぞれには、次の2つのファイル(R1、R2)があります。
HI.2622.001.Index_16.ED16_KS1W9-3_342_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
HI.2622.001.Index_16.ED16_KS1W9-3_342_R2.fastq.gz_matches_default.fit_ID_90.fit_ID90_e
みんなのR1とR2ファイルをマージしたいです。 2つのファイルを持つ人が1人だけなら簡単にできます。
cat HI.2622.001.Index_16.ED16_KS1W9-3_342_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e HI.2622.001.Index_16.ED16_KS1W9-3_342_R2.fastq.gz_matches_default.fit_ID_90.fit_ID90_e > HI.2622.001.Index_16.ED16_KS1W9-3_342_all
ところでお話ししたようにファイルが700個もありますが、すべての人のR1、R2ファイルを別々にマージするには時間がかかりそうです。たとえば、ループを介してこれを行う方法はありますか?人によってIDが異なります。各人のIDを含むファイルがあります。
head inds.names
HI.2622.001.Index_16.ED16_KS1W9-3_342
HI.2622.001.Index_19.ED18_ND1W27-2_288
HI.2622.001.Index_21.ED20_SD1W11-7_237
HI.2622.001.Index_2.ED2_KS2W24-7_43
答え1
それはかなり簡単なはずですパラメータ拡張例えば
for f in HI.2622.001.Index_*_R1.fastq.gz_matches_default.fit_ID_90.fit_ID90_e; do
cat "$f" "${f/R1/R2}" > "${f%%_R1*}_all"
done