【发布时间】:2021-04-28 17:19:00
【问题描述】:
我有一个文件夹,其中包含以下格式的文件:
照片 31-12-2020, 00 08 09.jpg
即dd-mm-yyyy, hr min sec.jpg
我想将所有文件重命名为以下格式:
2020-12-31 00.08.09.jpg
即yyyy-mm-dd hr.mm.sec.jpg
变化是:年份和日期移动,逗号删除,小时、分钟和秒之间的点。
但是,文件夹中有几百个文件,所以我想使用 bash 脚本自动执行此操作。
我已经考虑过运行一个 bash 脚本来执行此操作,但不幸的是,我对脚本编写不太满意并且没有成功。
谁能帮我找到一个简单的方法来解决我的问题?
【问题讨论】:
-
它是 Mac 还是 Linux?工具不同。
-
P.S.:你试过什么?就样本数据而言...请使用实际可区分月份和日期的文件名,例如2020-02-29 ...
-
嗨@rene ...要求一个“工具”将这个问题带入“不是编程问题”的领域......如果您实际添加,它也更有可能重新打开对问题的 bash 尝试失败。
-
假设您在照片所在的目录中......这应该工作。
for i in Photo*jpg; do echo mv -v "${i}" "$(echo $i|awk 'BEGIN{FS="[ ,.-]"}{printf "%s-%s-%s %s.%s.%s.jpg\n",$4,$3,$2,$6,$7,$8}')"; done...如果输出看起来合理,则删除第一个echo.. -
谢谢你!你的命令完全符合我的要求。很抱歉,如果我的问题从一开始就没有那么明确或有定论,但我对您的帮助感到非常高兴!