我有一个问题。我想写一个bash脚本来重命名不同文件夹中的照片。 你有什么建议吗?
输入是:
我想要的输出是:
输出格式为:yearmounthday_hourminuteseconds.ext,当修改了照片时(我在名称的最后部分放了-1)我想要一个增量数字(1)或(2)ecc ...
抱歉我的英语不好,但我希望你理解我的问题。非常感谢你:))
编辑:感谢您的回复!!我这样做了:
#!/bin/bash
declare dir_photo=$(ls $PWR | grep .jpg)
for N in $dir_photo do exiftool -d %Y%m%d_%H%M%S $N | awk -F': ' '/File Modification Date/{print $2}' done
但是,如果我想要创作时间而不是修改时间,我必须改变什么?
编辑2:抱歉,脚本像魅力一样运行!非常感谢!!!
答案 0 :(得分:1)
使用您的格式获取日期的解决方案:
$ exiftool -d %Y%m%d_%H%M%S image.png |
awk -F': ' '/File Modification Date/{print $2}'
输出:
20140429_110955
开始编写脚本!
#!/bin/bash
dir_photo=(*.jpg)
for N in ${dir_photo[@]}; do
date_str=$(
exiftool -d %Y%m%d_%H%M%S $N |
awk -F': ' '/File Modification Date/{print $2}'
)
print "$N $date_str"
done
答案 1 :(得分:0)
谢谢大家。 对“后代意志”:D 我知道有两种方法可以解决这个问题:
使用exiftool:
#!/bin/bash
dir_photo=(*.jpg)
for N in ${dir_photo[@]}; do
date_str=$(
exiftool -d %Y%m%d_%H%M%S $N |
awk -F': ' '/File Modification Date/{print $2}'
)
print "$N $date_str"
done
或者使用jhead:
jhead -n%Y%m%d_%H%M%S *.jpg
选择您喜欢的内容;)