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はそのファイルをそのディレクトリに移動します。