0

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

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}//-/:}”
4

2 回答 2

1

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

dt="${var:0:11} ${var:11:2}:${var:14:2}:${17:2}"
于 2021-05-28T00:18:52.760 回答
0

感谢巴尔玛的回答。

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

exiftool -d '%Y-%m-%d $H-%M-%S' \
    '-DateTimeOriginal<${FileName}' \
    '-CreateDate<${FileName}' \
    '-MediaCreateDate<${FileName}' "${file}"
于 2021-05-31T12:14:31.003 回答