在MAC OSX中批量重命名文件

马基斯

我有数千个文件,名称如下:

PIN_PMN_PT_010_02_00331_0004_018edf

并需要将它们重命名为:

PIN_PMN_PT_010_02_00331_0004_018.edf

我使用了像这样的简单mv脚本:

for f in *; do echo mv "$f" "`echo $f | tr 'edf' '.edf'`"; done

由于某种原因,它会创建如下名称:

PIN_PMN_PT_010_02_00331_0004_018.ed

他们错过了最后一个f我正在使用echo运行脚本来进行空运行。有什么想法吗?

使用运行Mohave 10.14.6和Bash的MACBook Pro。

豪里

使用shell参数扩展

只需在任何

为了进行测试,echo以显示结果:

for file in *edf ;do echo mv "$file" "${file%edf}.edf" ;done

然后,为了完成这项工作:

for file in *edf ;do mv "$file" "${file%edf}.edf" ;done

(这在MacO上必须与在Linux上相同。)

...并防止重命名已正确命名的文件:

for file in *edf ;do test -f "${file##*.edf}" && mv "$file" "${file%edf}.edf" ;done

语法${file##*.edf}会将以终止的任何字符串替换.edf为空字符串。所以test -f ""会失败。

...仍然:我没有任何Mac可以进行测试,但是由于这是POSIX Standard,因此它必须可以在任何(让我知道,请发表评论!)

更多信息?

看看man shman bash搜索Parameter Expansion

man -P"less +'/Parameter Expansion'" bash

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python在Mac中批量重命名文件

来自分类Dev

使用regexp在Mac OS X Bash中批量重命名文件

来自分类Dev

在Mac终端中重命名包含“;”的文件

来自分类Dev

使用Mac终端在ftp服务器上批量重命名文件

来自分类Dev

使用Regex在Mac OS Terminal中重命名文件

来自分类Dev

如何在Mac OSX上使用Zsh Shell和`sed`命令重命名文件

来自分类Dev

Shell命令(在Mac OSX El Capitan上)以递归方式重命名我的所有DOCX文件

来自分类Dev

Mac终端文件随机重命名

来自分类Dev

如何在Mac OSX中重命名计算机名称/根

来自分类Dev

在OSX中批量重命名目录

来自分类Dev

如何在Mac OSX中的MySQL工作台6.0.9社区版本中重命名例程名称并保存例程代码

来自分类Dev

批量重命名文件

来自分类Dev

批量重命名文件

来自分类Dev

批量重命名文件

来自分类Dev

批量重命名文件

来自分类Dev

批量文件重命名

来自分类Dev

重命名批量文件

来自分类Dev

在Windows中批量重命名多个文件?

来自分类Dev

在Linux中批量重命名文件

来自分类Dev

批量重命名特定目录中的文件

来自分类Dev

如何在Mac上根据创建时间重命名目录中的文件列表

来自分类Dev

重命名Mac命令行文件

来自分类Dev

如何批量重命名文件?

来自分类Dev

如何批量重命名文件?

来自分类Dev

批量重命名多个文件

来自分类Dev

从终端批量重命名文件

来自分类Dev

批量重命名文件夹中的文件

来自分类Dev

批量重命名文件夹中的文件

来自分类Dev

批量重命名文件夹中的文件