【问题标题】:Mass rename files (bash)批量重命名文件 (bash)
【发布时间】:2012-09-02 00:30:17
【问题描述】:

我有几个包含照片的文件夹,每个文件夹平均有 15000 张照片,现在我想要一个脚本来重命名文件。 可以是文件名 obraz2.jpg.1 到 obraz2.jpg.1500,现在 chcaiłbym 将每个文件名更改为创建日期,例如:010912-04-00-34.jpg 文件从 2012 年 9 月 1 日开始,时 4 分 0 秒和34、有一个bash脚本

#!/bin/bash
# Copy jpg files in a directory to a new name based solely on creation date
# FROM: obraz2.jpg.1 > 1500  Created on: 2012-04-18 18:51:44
# TO:    20120418_185144.jpg
for i in *.*
do
#  mod_date=$(stat -c "%y" "$i"|sed 's/\..*$//')
#  mod_date=$(stat -c "%y" "$i"|awk '{print $1"_"$2}'|sed 's/\..*$//')
mod_date=$(stat --format %y "$i"|awk '{print $1"_"$2}'|cut -f1 -d'.'|sed 's/[: -]//g')
 cp "$i" "$mod_date".jpg
done

我只是有一个问题,就是他给的名字 010912-04-00-34.jpg 这不是一个脚本 20120418_185144.jpg 应该改变什么让它像我想要的那样,我会添加脚本,我发现自己没有写。

【问题讨论】:

  • 所以你想批量重命名已经用你想要的日期格式重命名的文件?我不确定我是否理解您的问题。什么是chcailbym???请改写你的问题细节,很难理解。
  • 什么是“chciałbym”谷歌翻译“对不起,我的语言是波兰语”
  • 如果您的问题与日期格式有关,请查看以下问题:http://stackoverflow.com/questions/4181552/unix-stat-time-format
  • 所有程序员都了解示例输入数据和示例所需输出,请编辑您的问题以包括两者,尤其是输入的问题案例。祝你好运。

标签: bash rename


【解决方案1】:

为了重新格式化您的日期字符串,您可以使用date 程序,如下所示:

for i in *.*; do
     stat_date=$(stat --format %y "$i"|awk '{print $1"_"$2}' | cut -f1 -d'.'|sed 's/_/ /g')
     date_fmt=$(date --date="$stat_date" +"%d%m%y-%H-%M-%S")
     cp $i ${date_fmt}.jpg
done

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 2017-01-01
    • 2015-12-12
    • 2021-04-04
    • 1970-01-01
    • 2012-12-24
    • 2013-12-19
    相关资源
    最近更新 更多