두 개의 파일을 하나로 병합

두 개의 파일을 하나로 병합

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가 포함된 파일이 있습니다.

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

관련 정보