【问题标题】:How do I change the order of a filename on Mac如何在 Mac 上更改文件名的顺序
【发布时间】: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 ..
  • 谢谢你!你的命令完全符合我的要求。很抱歉,如果我的问题从一开始就没有那么明确或有定论,但我对您的帮助感到非常高兴!

标签: bash macos file rename


【解决方案1】:

假设您在照片所在的目录中......这应该可以。

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 ..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    相关资源
    最近更新 更多