두 폴더의 동일한 파일 이름을 하나의 파일로 연결하는 방법은 무엇입니까?

두 폴더의 동일한 파일 이름을 하나의 파일로 연결하는 방법은 무엇입니까?

이름이 같은 fasta.qz 시퀀스 파일이 있지만 연결해야 하는 서로 다른 두 폴더에 있습니다(항상 이름이 같은 두 폴더만 연결하십시오!). 디렉토리 구조는 다음과 같습니다.

순서

**|--folderA**

|  \-- \--MOSA_F_TAC01n.1.fq.gz       
 |  \-- --MOSA_F_TAC08n.rem.1.fq.gz       
 |  \-- --WAIN_N_15m.rem.2.fq.gz       
 |  \-- --MOSA_F_TAC01n.2.fq.gz       
 |  \-- --MOSA_F_TAC08n.rem.2.fq.gz       
 |  \-- --WAIN_N_16m.1.fq.gz       
 |  \-- --MOSA_F_TAC01n.rem.1.fq.gz       
 |  \-- --PAUA_F_16v.1.fq.gz       
 |  \-- --WAIN_N_16m.2.fq.gz       
 |  \-- --MOSA_F_TAC01n.rem.2.fq.gz       
 |  \-- --PAUA_F_16v.2.fq.gz     


**| \--folderB**       
 |  \-- --MOSA_F_TAC01n.1.fq.gz       
 |  \-- --MOSA_F_TAC08n.rem.1.fq.gz       
 |  \-- --WAIN_N_15m.rem.2.fq.gz       
 |  \-- --MOSA_F_TAC01n.2.fq.gz       
 |  \-- --MOSA_F_TAC08n.rem.2.fq.gz       
 |  \-- --WAIN_N_16m.1.fq.gz       
 |  \-- --MOSA_F_TAC01n.rem.1.fq.gz       
 |  \-- --PAUA_F_16v.1.fq.gz       
 |  \-- --WAIN_N_16m.2.fq.gz       
 |  \-- --MOSA_F_TAC01n.rem.2.fq.gz       
 |  \-- --PAUA_F_16v.2.fq.gz   

보시다시피 파일 이름은 동일합니다(내용이 다릅니다. 즉, 보완적이므로 필요합니다 cat). 파일 이름을 유지하고 동일한 파일을 해당 이름의 파일(예: 폴더C라는 새 폴더)에 연결하고 싶습니다.

답변1

다음과 같이 시도해 보세요.

for FILE in dir1/* ; do
    FILE2=dir2/${FILE#*/}
    if [ -f $FILE2 ] ; then
        cat $FILE $FILE2 > dir3/${FILE#*/}
    fi
done

여기서 dir1는 소스 디렉터리 중 하나이고, dir2는 다른 소스 디렉터리이고, dir3는 출력 디렉터리입니다.

답변2

그렇게 쉽지는 않을 것 같아요. 파일의 "확장자"는 해당 파일이 gzipped 데이터이므로 gunzip연결하기 전에 ped해야 함을 나타냅니다. Christian Gibbons의 답변을 훔쳐서 시도해 보세요.

for FILE in dir1/* ; do
    FILE2=dir2/${FILE#*/}
    if [ -f $FILE2 ] ; then
        gunzip -c $FILE $FILE2 | gzip > dir3/${FILE#*/}
    fi
done

관련 정보