.txt ファイルをサブディレクトリに移動する

.txt ファイルをサブディレクトリに移動する

1つのディレクトリ内に複数のディレクトリがあります。

Astrocytes_BloodCells_GeneSet/   Astrocytes_Polydendrocytes_GeneSet/  Endothelia_Neurons_GeneSet/   Microglia.y_Neurons_GeneSet/           Oligodendrocytes_Microglia.y_GeneSet/      Polydendrocytes_Microglia.x_GeneSet/
Astrocytes_Endothelia_GeneSet/   BloodCells_Endothelia_GeneSet/       Microglia.x_BloodCells_GeneSet/   Oligodendrocytes_Astrocytes_GeneSet/   Oligodendrocytes_Neurons_GeneSet/      Polydendrocytes_Microglia.y_GeneSet/
Astrocytes_Microglia.x_GeneSet/  BloodCells_Microglia.y_GeneSet/      Microglia.x_Endothelia_GeneSet/   Oligodendrocytes_BloodCells_GeneSet/   Oligodendrocytes_Polydendrocytes_GeneSet/  Polydendrocytes_Neurons_GeneSet/
Astrocytes_Microglia.y_GeneSet/  

各サブディレクトリには、次の形式に従うフォルダが含まれています。

_.LD_RESULTS_directoryname

たとえば、背中Astrocytes_BloodCells_GeneSet/のフォルダが含まれます。_.LD_RESULTS_Astrocytes_BloodCells_GeneSet/このディレクトリには複数の.txtファイルがあります。

Astrocytes_BloodCells_GeneSet/,Astrocytes_Polydendrocytes_GeneSet/_.LD_RESULTS_directoryname.txtなどをフォルダにコピーする簡単なスクリプトを作成しようとしています。この目標をどのように達成できますか?

ベストアンサー1

これらのディレクトリのみを含む最上位ディレクトリがあると仮定すると、次のシェルスクリプトはサブディレクトリを_.LD_RESULTS_作成し、必要に応じてコピーできると思います。

#!/bin/bash

for i in */
do
 target="$i/_.LD_RESULTS_$i"
 mkdir -p "$target"
 cp -p "${i}"*.txt "$target"
done

コピーしますか?別の方法はファイルを移動することです。バックアップが必要な場合は、別のドライブに保存する必要があります(ドライブがクラッシュしたときに生き残るため)。

おすすめ記事