我有一个包含以下文件的文件夹:
trackingData-00-1.data, trackingData-00-2.data, ..., trackingData-00-2345.data
我想用4位数字格式化数字来重命名它们
trackingData-00-0001.data, trackingData-00-0002.data, ..., trackingData-00-2345.data
如何使用bash shell命令实现这一点?
最佳答案
纯溶液:
for f in trackingData-00-*.data; do
[[ $f =~ trackingData-00-([0-9]+).data ]]
mv "$f" $(printf "trackingData-00-%04d.data" ${BASH_REMATCH[1]})
done
正则表达式提取要填充的数字并将其存储在
bash
数组中。然后使用BASH_REMATCH
创建新的文件名,重新插入数字并用零填充。关于bash - Shell命令格式化文件名中的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14751939/