重命名最后一个数字字符串

重命名最后一个数字字符串

如何使用零填充版本重命名它找到的最后一个数字字符串,并保留文件名的其余部分?

AAA 2000-01-03 bbb 2001-03-04 page_1.pdf

到:

AAA 2000-01-03 bbb 2001-03-04 page_0001.pdf

看:

答案1

最简单的方法可能是匹配前面的page_字符串

前任:

$ rename -n 's/page_(\d+)/sprintf "page_%04d", $1/e' *.pdf
rename(AAA 2000-01-03 bbb 2001-03-04 page_1.pdf, AAA 2000-01-03 bbb 2001-03-04 page_0001.pdf)

-n当您对它所做的事情感到满意时,请将其删除)。


如果你真的需要匹配“最后一个数字”,你可以使用积极展望将匹配项锚定到字符串的末尾$,并在其之间放置一个可能为空的非数字序列:

$ rename -n 's/(\d+)(?=\D*$)/sprintf "%04d", $1/e' *.pdf
rename(AAA 2000-01-03 bbb 2001-03-04 page_1.pdf, AAA 2000-01-03 bbb 2001-03-04 page_0001.pdf)

相关内容