【问题标题】:Add file format with bash使用 bash 添加文件格式
【发布时间】:2018-06-01 05:18:19
【问题描述】:

我有一个文件夹,里面有几千个 jpg 文件。问题是其中一些已损坏,因为它们在文件名和“jpg”之间没有点(例如 123jpg)。

我需要一个脚本来解决这个问题。我该怎么做?

【问题讨论】:

  • 你怎么知道文件名在哪里结束,扩展名从哪里开始?扩展名总是 3 个字符吗?
  • for fn in *jpg; do [ "$fn" = *".jpg" ] || mv "$fn" "${fn%jpg}.jpg"; done ??
  • 此文件夹中所有没有扩展名的文件始终遵循“文件名jpg”模式,没有其他文件没有扩展名的文件类型。
  • 要么是,试试上面的,cd 进入目录,然后复制/粘贴上面发布的内容。
  • @DavidC.Rankin 你不是说[[ 吗?

标签: bash rename file-rename batch-rename


【解决方案1】:

使用重命名命令

$ rename jpg .jpg *[^.]jpg

【讨论】:

  • 这也有效,无需记住循环和复合命令语法。
  • 这是重命名命令之一;还有一个基于 Perl 的重命名(有时称为 prename),其用法如下:rename 's/jpg$/.jpg/' *[^.]jpg。这具有不将anyjpgfilejpg 更改为any.jpgfilejpg 的优点(尽管我不确定问题中使用的原始rename 是否存在风险)。 +1 充分利用 *[^.]jpg 作为全局表达式。
猜你喜欢
  • 2013-07-02
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
相关资源
最近更新 更多