ファイルディレクトリをスキャンし、同じ名前の重複エントリを見つけて1つのファイルにリンクします。

ファイルディレクトリをスキャンし、同じ名前の重複エントリを見つけて1つのファイルにリンクします。

複数のファイルを含むディレクトリがあります。

たとえば、

ExperimentA_Rep1.bed  
ExperimentA_Rep2.bed
ExperimentA_Rep3.bed 
ExperimentB_Rep1.bed 
ExperimentD_Rep1.bed 
ExperimentC_Rep1.bed
ExperimentC_Rep2.bed
 . . . 
ExperimentZ_Rep5.bed

ディレクトリからファイル名を検索し、同じ実験のファイルをリンクしますが、別の複製を新しいファイルにリンクする必要があります。

つまり、cat ExperimentA_Rep1.bed ExperimentA_Rep2.bed > ExperimentA_merged.bed

しかし、ハードコードすることはできません。実験データセットで動作する必要があるからです。

Pythonスクリプトを実行しても問題ありません。

答え1

以下は、ファイル名のRep部分が1から順に番号付けされていると仮定します(つまり、Rep1もない場合はRep2またはRep3はありません)。これは、「Rep1」ファイルの存在を使用して、特定のExperiment *ファイルシリーズに対してcatを実行するかどうかを決定します。これは、ExperimentA * .. ExperimentZ *シーケンスにいくつかのファイルがない場合にのみ必要です。これが不可能な場合は、[ -e Experiment${f}_Rep1.bed ] &&キャットラインから削除してください。

for f in {A..Z} ; do
    [ -e Experiment${f}_Rep1.bed ] && cat Experiment${f}_Rep*.bed > Experiment${f}_merged.bed
done

関連情報