特定の増分でディレクトリをコピーするスクリプト

特定の増分でディレクトリをコピーするスクリプト

0.1、0.15、0.2、0.25、0.3、0.35などのディレクトリがあります。次に、ディレクトリを特定の増分(例:0.1)として別のディレクトリにコピーしたいと思います。ディレクトリ0.1、0.2、0.3はフォルダ1に移動する必要があり、ディレクトリ0.15、0.25、0.35はフォルダ2に移動する必要があるとします。どうすれば簡単にできますか?

答え1

特定の質問では、ファイル名の長さを使用して区別できます。

mv ??? first
mv ???? second

より一般的なケースでこの問題を解決するには、ファイルの繰り返しと基本的な算術が合理的なPythonやRubyなどの言語を使用したいと思います。

答え2

シェルがサポートしている場合支柱の拡張:

最初の増分の場合:

mv /path/to/0.{0..99} /path/to/newdirectory/

2番目の増分:

mv /path/to/0.{0..99}5 /path/to/newdir/

注:0と を増分の最初と最後の数字に99変更します。{0..99}

答え3

これは私が使用するディレクトリ構造です

/
--0.1 - file
--0.2 - file
--0.15 - file
--0.25 - file
--first - dir
--second - dir

まず、0.1と0.2のファイルを 'first'ディレクトリに移動します。

for f in `ls|grep '^0\.[0-9]$'`;do;mv $f first;done;

次に、0.15と0.25をdir 'second'に移動します。

for f in `ls|grep '^0\.[0-9][0-9]$'`;do;mv $f second;done

コード内のgrep '<regex>'パターンと一致するすべてのファイルを一覧表示し、mvはそのファイルをそのディレクトリに移動します。

関連情報