我有一个包含超过 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)/