查找文件名时间戳之间的文件



我有一个延时相机每隔几分钟拍一张照片,无论白天还是晚上。我想只传递白天的图像到ffmpeg来创建一个电影。所以我有一个文件夹,里面都是图片,文件名中有时间戳:

photo_2023-02-24_10-48-23.jpg
photo_2023-02-24_03-42.jpg
photo_2023-02-23_23-12-06.jpg
photo_2023-02-23_12-22.jpg
photo_2023-02-23_12-22-03.jpg
...

我想获得白天拍摄的所有图像(例如在08-00和17-00之间)。

到目前为止,我想出了这个正则表达式。我想选择"小时"在名字里。我如何重用该部分,以便在下一步中进行比较?
find -E . -type f -regex ".*/photo_[0-9]{4}-[0-9]{2}-[0-9]{2}_([0-9]{2}).*" -exec bash -c 
'fn=${0##*/}; h=${HOUR};
[[ $h -ge 8 && $h -le 17 ]] && echo "$0"' {} ;

目前有帮助:在Terminal/Linux

上查找包含特定日期范围的文件名的所有文件

如果您想要获取所有在小时位置中包含从08到16(包括)的文件,您可以使用以下命令:

find . -type f -regex ".*/photo_[0-9]{4}-[0-9]{2}-[0-9]{2}_(0[89]|1[0-6]).*" 

相关内容

  • 没有找到相关文章

最新更新