交换文件名中的第一个和最后四个字符
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
的子串
计算器溢出。
我收集了工作笔记。我将它们保存为降价文件,并用日期和年份对它们进行格式化——例如,今天的标题为 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
的子串