2つのファイルを1つにマージ

2つのファイルを1つにマージ

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

おすすめ記事