交换文件名中的第一个和最后四个字符

Swap first and last four characters in a filename

计算器溢出。

我收集了工作笔记。我将它们保存为降价文件,并用日期和年份对它们进行格式化——例如,今天的标题为 06132017.md

我工作快一年了,所以我有很多这样的文件。我希望将命名约定从 month/day first 更改为 year first,这样我就可以按字母顺序对它们进行排序并轻松找到我需要的日期。

所以 06132017.md 将变为 20170613.md - 这将防止 2016 年和 2017 年在 aplha 顺序中混合。我可以在文件夹上 运行 执行此操作吗?

如果您有 Perl 重命名实用程序,则操作起来相当简单:

$ prename 's/^(....)(....)(\.md)$//' *.md 
06132017.md renamed as 20170613.md

圆点匹配任意字符,括号组,替换侧$N插入组中捕获的字符。

或者就在 Bash:

$ for x in ????????.md ; do mv -v "$x" "${x:4:4}${x:0:4}.md" ; done
'06132017.md' -> '20170613.md'

${var:n:m} 从变量 var.

的位置 n 开始获取长度为 m 的子串