我有一个包含以下文件的文件夹:

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/

10-13 07:40