kas*_*ish 13 command-line batch-rename
我在一个文件夹中有 40 个 mp4 文件。
每个文件都以video_. 每个文件都是格式video_*.mp4。
我需要重命名所有文件,并video_从每个文件的开头删除。我怎样才能从终端做到这一点?
Pil*_*ot6 28
您可以在这些文件所在的目录中通过终端命令来完成。
rename 's/^video_//' *.mp4
Run Code Online (Sandbox Code Playgroud)
这意味着选择所有以开头的文件名video_并替换video_为空。我猜s是“替代”。
^显示字符串的开头。如果省略^,video_无论它在字符串中的哪个位置,第一次出现的都将被删除。但在你的情况下,这并不重要。
注意:17.04 以上的 Ubuntu 版本不附带rename软件包,但是您仍然可以通过以下方式从默认存储库安装它sudo apt install rename
使用rename( prename) :
rename -n 's/^video_//' video_*.mp4
Run Code Online (Sandbox Code Playgroud)
如果您对将要进行的更改感到满意,请删除-n以让操作实际发生:
rename 's/^video_//' video_*.mp4
Run Code Online (Sandbox Code Playgroud)使用bash参数扩展:
for file in video_*.mp4; do mv -i "$file" "${file#video_}"; done
Run Code Online (Sandbox Code Playgroud)
${file#video_}是video_要从文件名开头删除的参数扩展模式。或者
for file in video_*.mp4; do mv -i "$file" "${file/video_/}"; done
Run Code Online (Sandbox Code Playgroud)
这个假设video_在文件名中只出现一次
${file/video_/}是一个bash参数扩展模式,video_将从文件名替换为空白。