You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将exiv2的空输出替换为'empty'类占位符?

解决exiv2空输出替换为占位符的方法

当使用exiv2 -q -K Xmp.photoshop.Credit image.jpg查询不存在的元数据字段时,控制台无输出。可以通过shell脚本的方式将空输出替换为指定占位符,以下是几种常用方法:

方法一:Bash参数扩展

利用Bash的参数扩展特性,直接判断命令输出是否为空:

output=$(exiv2 -q -K Xmp.photoshop.Credit image.jpg)
echo "${output:-empty}"

${output:-empty}表示如果output变量为空或未设置,则输出empty,否则输出变量本身的值。

方法二:使用Awk处理输出

通过Awk过滤输出内容,当无有效行时输出占位符:

exiv2 -q -K Xmp.photoshop.Credit image.jpg | awk 'NF{print; next} END{print "empty"}'

NF代表当前行的字段数,非零表示行非空,直接打印;如果所有行都为空,在结束时打印empty。

方法三:POSIX兼容的条件判断

如果使用的是不支持Bash参数扩展的POSIX标准shell,可以用if语句判断:

output=$(exiv2 -q -K Xmp.photoshop.Credit image.jpg)
if [ -z "$output" ]; then
    echo "empty"
else
    echo "$output"
fi

-z用于检查字符串长度是否为零,为空则输出占位符,否则输出原结果。

需要注意的是,exiv2本身没有内置的空输出替换选项,上述方法都是通过shell层面对命令输出进行处理实现需求。

内容的提问来源于stack exchange,提问作者K. S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:05:02