68

我有一组文件,全部都是nnn.MP4.mov. 我怎么能重命名它们以便它只是nnn.mov

4

10 回答 10

97

首先,使用以下内容进行试运行(实际上不会重命名任何文件):

for file in *.mov
do
  echo mv "$file" "${file/MP4./}"
done

如果一切正常,请echo从第三行中删除以实际重命名文件。

于 2011-03-22T16:16:11.250 回答
35

我刚刚成功地使用了 Automator(我第一次打扰),而且效果非常好。我将自动化保存为服务。大约需要 10 秒才能使某些东西易于重复使用:

  1. 打开自动机。
  2. 作为文档类型,选择“服务”。
  3. 更改服务将选定的“文本”接收到“文件和文件夹”。
  4. 考虑将“任何应用程序”更改为仅 Finder。
  5. 从侧边栏中,选择“文件和文件夹”(在库下),然后从列出的操作中,在中心列中,将“重命名 Finder 项目”拖到右侧,并将其拖放到“将操作或文件拖到此处以构建您的工作流程”中。 "
  6. 将您刚刚添加的操作从“添加日期或时间”更改为“按顺序执行”。
  7. 单击操作底部的“选项”,然后选中“工作流运行时显示此操作”选项。
  8. 点击“CMD+S”将服务保存为“替换文本”之类的东西。
  9. 完毕!

现在您可以右键单击 Finder 中的任何选择,进入服务菜单并选择“替换文本”,填写您希望文本更改或替换的方式 - 然后单击“继续”以应用配置的更改。

于 2012-02-28T07:01:32.663 回答
12

测试打印操作:

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
于 2013-04-24T20:48:26.457 回答
12

在 mac OSX 上,您可以rename通过 Homebrew 安装命令:brew install rename

然后,您可以在命令行上使用该文件夹中的查找/替换重命名:

rename 's/\.MP4\././' *

您还可以使用 . 查看更多选项man rename

于 2016-08-04T15:02:52.677 回答
11
for n in *.MP4.mov
do
   mv $n $(echo $n | sed -e 's/.MP4//')
done

这甚至适用于没有参数替换的非常旧的 shell,至少在我看来它更具可读性。

于 2013-10-01T02:08:41.733 回答
4
于 2018-05-21T06:19:42.583 回答
1
for i in `ls *png`;do echo mv $i "${i%%.*}"@xx."${i##*.}";done
于 2013-08-13T12:29:14.330 回答
1

vimv允许您使用 Vim 的文本编辑功能重命名多个文件。

输入 vimv 会打开一个列出所有文件的 Vim 窗口,您可以进行模式匹配、视觉选择等来编辑名称。退出 Vim 后,文件将被重命名。

[免责声明:我是该工具的作者]

于 2017-08-13T04:43:21.793 回答
0
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 ^^

于 2011-03-22T16:13:33.513 回答
0
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done

编辑:完全重写。

于 2011-03-22T16:02:35.973 回答