이름이 같은 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
그렇게 쉽지는 않을 것 같아요. 파일의 "확장자"는 해당 파일이 gzip
ped 데이터이므로 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