嵌入的参数替换



这就是一个接一个的参数替换(将图片文件名转换为日期(:

var=“2020-12-30 11-30-55CX.mov”
p1=${var:0:11}
pt=${var:11:8}
p2=${pt//-/:}
dt=“${p1} ${p2}”

我想一次性完成,这样exiftool就可以接受:

dt=“${var:0:11} ${${var:11:8}//-/:}”

不能嵌套这样的扩展运算符。但是您可以使用较小的子字符串来获得您想要的结果。

dt="${var:0:11} ${var:11:2}:${var:14:2}:${17:2}"

感谢Barmar的回答。

我只想澄清一下,最后,由于我需要ExifTool使用日期时间,我不需要做任何以前的Linux变量替换,因为ExifTool有一种方法可以指定文件名中使用的任何日期时间格式,并通过使用-d选项提取它。所以这就是我最终所做的。注意,我甚至不需要删除ExifTool的结尾CX.mov字符就可以获得正确的日期时间:

exiftool -d '%Y-%m-%d $H-%M-%S' 
'-DateTimeOriginal<${FileName}' 
'-CreateDate<${FileName}' 
'-MediaCreateDate<${FileName}' "${file}"

最新更新