100,000 を超える小さなファイルを含むディレクトリがあります。それらを別のフォルダに入れたいと思います。
find mydir/ -type f | sort > tt.txt
vim tt.txt
ここで、各行に次の式で数値を挿入したいと思います。
(行番号) + 50000 + ((行番号/1000)*1000)
したがって、元のファイルは次のようなものです。
abainville_55130_55001.htm
abancourt_59268_59001.htm
abbenans_25340_25003.htm
abergement-de-cuisery_71290_71001.htm
そして出力する必要があります:
51001 - abainville_55130_55001.htm
51002 - abancourt_59268_59001.htm
51003 - abbenans_25340_25003.htm
51004 - abergement-de-cuisery_71290_71001.htm
など、1000 行目まで続きます。
line 998 => 51000 - bannes_53340_53019.htm
line 999 => 51000 - bannieres_81500_81022.htm
line 1000 => 52000 - bannoncourt_55300_55027.htm
line 1001 => 52000 - banos_40500_40024.htm
line 1002 => 52000 - bans_39380_39037.htm
その後、マクロを適用して次のように変換します。
mv bannes_53340_53019.htm 51998/bannes_53340_53019.htm
mv bannieres_81500_81022.htm 51999/bannieres_81500_81022.htm
mv bannoncourt_55300_55027.htm 52000/bannoncourt_55300_55027.htm
mv banos_40500_40024.htm 52001/banos_40500_40024.htm
mv bans_39380_39037.htm 52002/bans_39380_39037.htm
(最後の部分は簡単で問題ではありません。問題は数学に関するものです)。
次のようなものがあることは知っていますが、数学を適用するための解決策が見つかりません。
:s/^/\=(line('.')+51000)/