gpt4 book ai didi

macos - 使用 mdls 命令生成元数据报告

转载 作者:行者123 更新时间:2023-11-29 09:28:50 25 4
gpt4 key购买 nike

全部,
我有 shell 脚本,它遍历用户提供的文件夹中的所有媒体(音频、视频)文件,并创建一个很好的基于文本的元数据报告。我在 Mac OS X 上使用 Spotlight 的 mdls 命令来获取所有相关的元数据。问题是有时我会在所有媒体文件的报告中看到“空”结果。如果我再次运行该脚本,它似乎可以正常工作。我很困惑为什么会这样。这是输出元数据报告的脚本的一部分:

cd "path_to_folder"
while IFS= read -r -d $'\0' file; do
duration=`mdls -name kMDItemDurationSeconds "$file" | cut -d "=" -f 2 `
duration=`printf "%.2f" $duration;`
pixel_height=`mdls -name kMDItemPixelHeight "$file" | cut -d "=" -f 2`
pixel_width=`mdls -name kMDItemPixelWidth "$file" | cut -d "=" -f 2`
codec=`mdls -name kMDItemCodecs "$file" | cut -d "=" -f 2`
temp="$i) [$file]\n- Duration: $duration\n- Dimensions: $pixel_width X $pixel_height pixels\n- Codec: $codec\n"
metaDataOutput=$metaDataOutput"\n"$temp
i=$((i + 1))
done < <(find . \( -iname \*.m4v -o -iname \*.mov -o -iname \*.mp3 -o -iname \*.m4r -o -iname \*.m4a \) -print0 )

echo -e "\n[Report]\n"$metaDataOutput

预期的输出是这样的:

1) [./test1.mov]
- 持续时间:22.03
- 尺寸:480 X 640 像素
- 编解码器:(“H.264”)

2) [./test2.mov]
- 持续时间:25.03
- 尺寸:480 X 640 像素
- 编解码器:(“H.264”)

但有时所有媒体文件的输出都是空的:

1) [./test1.mov]
- 持续时间:无
- 尺寸:空 X 空像素
- 编解码器:(空)

2) [./test2.mov]
- 持续时间:无
- 尺寸:空 X 空像素
- 编解码器:(空)

我是不是漏掉了什么技巧?为什么脚本有时运行有时输出null?

最佳答案

问题是 Spotlight 没有为文件编制索引。我使用 mdimport 命令强制 Spotlight 为文件夹编制索引,这解决了问题

关于macos - 使用 mdls 命令生成元数据报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com