我有一组文件,全部都是nnn.MP4.mov
. 我怎么能重命名它们以便它只是nnn.mov
?
10 回答
首先,使用以下内容进行试运行(实际上不会重命名任何文件):
for file in *.mov
do
echo mv "$file" "${file/MP4./}"
done
如果一切正常,请echo
从第三行中删除以实际重命名文件。
我刚刚成功地使用了 Automator(我第一次打扰),而且效果非常好。我将自动化保存为服务。大约需要 10 秒才能使某些东西易于重复使用:
- 打开自动机。
- 作为文档类型,选择“服务”。
- 更改服务将选定的“文本”接收到“文件和文件夹”。
- 考虑将“任何应用程序”更改为仅 Finder。
- 从侧边栏中,选择“文件和文件夹”(在库下),然后从列出的操作中,在中心列中,将“重命名 Finder 项目”拖到右侧,并将其拖放到“将操作或文件拖到此处以构建您的工作流程”中。 "
- 将您刚刚添加的操作从“添加日期或时间”更改为“按顺序执行”。
- 单击操作底部的“选项”,然后选中“工作流运行时显示此操作”选项。
- 点击“CMD+S”将服务保存为“替换文本”之类的东西。
- 完毕!
现在您可以右键单击 Finder 中的任何选择,进入服务菜单并选择“替换文本”,填写您希望文本更改或替换的方式 - 然后单击“继续”以应用配置的更改。
测试打印操作:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";echo mv \"$file\" \"$j\"; done
为了使它工作:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";mv "$file" "$j"; done
在 mac OSX 上,您可以rename
通过 Homebrew 安装命令:brew install rename
然后,您可以在命令行上使用该文件夹中的查找/替换重命名:
rename 's/\.MP4\././' *
您还可以使用 . 查看更多选项man rename
。
for n in *.MP4.mov
do
mv $n $(echo $n | sed -e 's/.MP4//')
done
这甚至适用于没有参数替换的非常旧的 shell,至少在我看来它更具可读性。
for i in `ls *png`;do echo mv $i "${i%%.*}"@xx."${i##*.}";done
vimv允许您使用 Vim 的文本编辑功能重命名多个文件。
输入 vimv 会打开一个列出所有文件的 Vim 窗口,您可以进行模式匹配、视觉选择等来编辑名称。退出 Vim 后,文件将被重命名。
[免责声明:我是该工具的作者]
for i in *;
do j=`echo $i | cut -d . -f 1`;
j=$j".mov";
mv $i $j;
done
this will cut everything before the first dot and appends .mov
but if some files are e.g. hi.2.mov and hi.1.mov one will be overwritten, so use it carefully ^^
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done
编辑:完全重写。