2つのフォルダの同じファイル名を1つのファイルに関連付ける方法は?

2つのフォルダの同じファイル名を1つのファイルに関連付ける方法は?

同じ名前のfasta.qzシーケンスファイルがありますが、リンクする必要がある2つの異なるフォルダにあります(常に同じ名前の2つのフォルダのみをリンクしてください)。ディレクトリ構造は次のとおりです。

注文

**|--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、ソースディレクトリの1つ、dir2は別のソースディレクトリ、およびdir3は出力ディレクトリです。

おすすめ記事