根据名称编号将 mv 文件放入文件夹中

根据名称编号将 mv 文件放入文件夹中

我有 30 个文件夹:

s-01
s-02
...
s-30

而且,我有 30 个文件:

txtFile-001
txtFile-002
...
txtFile-030

如何一次性执行以下操作

mv txtFile-001 s-01/txtFile
mv txtFile-002 s-02/txtFile
...
mv txtFile-030 s-30/txtFile

答案1

使用 for 循环:

for i in $(seq -w 1 30); do mv -v "txtFile-0${i}" "s-${i}/txtFile"; done

这会运行01并调用命令中包含该数字的30每个数字。mv$i

编辑:没有seq它会像这样循环:

for i in {01..30}; do mv -v "txtFile-0${i}" "s-${i}/txtFile"; done

答案2

一击?

prename 's!txtFile-0(..)$!s-$1/txtFile!' txtFile*

这使用正则表达式来分割 txtFile-0nn 的尾随两位数字并将其用作目录后缀。

相关内容