我有一个约有1,700个文件的文件夹。它们都被命名为like 1.txt或1497.txt,等等。我想重命名所有文件,以便所有文件名均为四位数。
1.txt
1497.txt
即,23.txt成为0023.txt。
23.txt
0023.txt
什么是可以执行此操作的shell脚本?或一个相关的问题:如何使用grep只匹配包含以下内容的行\d.txt(即一位数字,然后是一个句点,然后是字母txt)?
\d.txt
txt
这是我到目前为止的内容:
for a in [command i need help with] do mv $a 000$a done
基本上,运行该命令3次,并在其中使用命令查找一位数字,两位数字和三位数字的文件名(更改了初始零的数目)。
尝试:
for a in [0-9]*.txt; do mv $a `printf %04d.%s ${a%.*} ${a##*.}` done
[0-9]*.txt根据需要更改文件名模式()。
[0-9]*.txt
通用枚举重命名,不对初始文件名集做任何假设:
X=1; for i in *.txt; do mv $i $(printf %04d.%s ${X%.*} ${i##*.}) let X="$X+1" done