如何重命名
sluno-20201027-call-metroua-status.mp4
sluno-20201103-call-deriva.mp4
sluno-20201103-call-metroua-status.mp4
sluno-20201105-call-makrocz.mp4
sluno-20201105-call-metroua-testcall.mp4
sluno-20201105-call-sluno-ggtabak.mp4
sluno-20201110-call-makrocz.mp4
sluno-20201110-call-metroua-status.mp4
sluno-20201110-call-sluno-utccz.mp4
到
sluno-call-metroua-status-20201027.mp4
sluno-call-deriva-20201103.mp4
sluno-call-metroua-status-20201103.mp4
sluno-call-makrocz-20201105.mp4
...
只需将日期/字符串移动7-14
到文件名的末尾即可。
谢谢。
答案1
mmv 适用于简单的文件重命名。
mmv '*-*-*-*.mp4' '#1-#3-#4-#2.mp4'
拥有更多的参考点也可能会有所帮助,以确保不会更改其他内容的名称,尤其是在同一目录中可能存在其他文件的情况下。
mmv 'sluno-[0-9]*-call-[a-z]*.mp4' 'sluno-call-#3#4-#1#2.mp4'
^ ^ ^ ^
1 2 3 4
sluno-20201027-call-metroua-status.mp4
^------- ^-------------
1 2 3 4
如果我要用最少的来实现,mv
我bash
会使用 for 循环和bash
内置 BRE 匹配。
for i in *.mp4; do \
[[ $i =~ ^sluno-(.*)-call-(.*).mp4 ]] && \
mv -- "$i" "sluno-call-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}.mp4"; \
done
答案2
答案3
另外一个选择:
$ qmv {模式}
将会把 2 列文件名放入您选择的编辑器中。
修改右列以获得您想要的文件名。
左侧列为原始名称。右侧组的起始列无法更改,因此自动换行可能会造成影响。
在每个编辑器的专家手中,速度会非常快,尤其是对于 vim 列和可视模式。
一般来说,我使用重命名,但对于复杂的需求,在编辑器中看到确切的名称会很好。