【问题标题】:Embedded parameter substitution嵌入式参数替换
【发布时间】:2021-08-16 06:13:00
【问题描述】:

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

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

【问题讨论】:

  • 写代码时不要使用“智能引号”。

标签: linux variable-substitution


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    感谢 Barmar 的回答。

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-14
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 2023-03-19
      • 2021-07-16
      • 1970-01-01
      相关资源
      最近更新 更多