我使用 wget 将网站下载到文件夹中。当文件具有相同的名称时,wget 将新文件存储为 name.extension。#
现在我有数百个文件,如 1.jpg、1.jpg.1、1.jpg.2 等。
我怎样才能将每个带有 .jpg* 扩展名的文件更改为普通的 .jpg?
编辑:我使用了免费软件 NameChanger,它让我在更改扩展名之前按 EXIF 数据进行组织。
答案1
答案2
我假设您想1.jpg.1
将其重命名为1-1.jpg
,否则您将丢失它们。我想到了一个快速而肮脏的方法:只需使用即可sed
动态构建一个 shell 脚本并运行sh
它:
$ ls -1 *jpg* | sed -e 's@\(.*\)\(\.jpg\.\)\(.*\)@mv \1\2\3 \1-\3.jpg@' | grep ^mv | sh
强烈建议您在之前检查输出sh
以确保它确实会做正确的事情。
答案3
IFS=$'\n'; for f in `find . -name '*.jpg.*'`; do echo mv "$f" "`sed -E 's/(.*)\.jpg\.(.*)/\1-\2.jpg/' <<< "$f"`"; done
另一个版本适用于所有子文件夹中的文件,并应处理带有空格的文件名。
答案4
这是在终端中重命名多个文件的容易记住的方法:
rename 's/\.jpg.1/\.jpg/' *.jpg.1
只需在每个文件后面加上扩展名/\.
,并确保在第二个参数中指定现有文件(*.jpg.1
在本例中)