【问题标题】:Rename Linux files by removing characters after extensions通过删除扩展名后的字符来重命名 Linux 文件
【发布时间】:2019-07-29 15:57:23
【问题描述】:

我想通过终端中的一行重命名 Linux 上文件夹中的所有 .jpg 文件。文件名都以一到三位数的数字结尾。我想去掉文件扩展名末尾的数字。

发件人:

file1.jpg62
file2.jpg193
file3.jpg3

收件人:

file1.jpg
file2.jpg
file3.jpg

rename 或 mv 命令会是什么样子?

【问题讨论】:

  • 您可以使用参数扩展来删除最后一个.(句点)之后的所有内容,例如${file%.*},只需添加.jpg,因为所有文件都是.jpg。我不认为你的问题可以只用 one 命令来回答,虽然我不熟悉sedawk 的来龙去脉。您需要遍历文件并使用 mvrename 和参数扩展。

标签: linux shell rename mv


【解决方案1】:

剥离扩展并在匹配后添加它。

for i in * ; do mv "${i}" "${i%%.*}.jpg" ; done

这仅适用于上述用户案例。它不考虑有重复的文件等。

【讨论】:

  • 您还可以使用for i in *.jpg* 限制这些文件,${i%.*} 仅在名称如image.modified.v2.0.jpg42 的情况下去除最后一个扩展名,以及可选mv -i 以不覆盖重复项
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 2017-04-01
  • 1970-01-01
  • 2020-03-13
  • 2020-02-27
  • 1970-01-01
相关资源
最近更新 更多