我有具有相同名称的 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
)。我想保留文件的名称并将相同的文件连接到一个具有所述名称的文件中(例如在名为folderC 的新文件夹中)。
答案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 处理。窃取克里斯蒂安·吉本斯的答案,尝试一下
for FILE in dir1/* ; do
FILE2=dir2/${FILE#*/}
if [ -f $FILE2 ] ; then
gunzip -c $FILE $FILE2 | gzip > dir3/${FILE#*/}
fi
done