gpt4 book ai didi

linux - Perl 比较

转载 作者:太空宇宙 更新时间:2023-11-04 05:54:08 25 4
gpt4 key购买 nike

我正在 Perl 中创建一个脚本,该脚本将从相机中拍摄照片并检查是否拍摄了任何新照片。在 Ubuntu 中,我使用 gphoto2 搜索相机中的图片,然后下载任何新图片。我在网上看到了一些脚本,它们几乎可以满足我的需求,但我遇到了一个问题,即每次 gphoto2 请求后都需要重置 USB 端口。我现在遇到的唯一问题是,如何将下面的输出保存到可以比较的数组或文件中?

There is no file in folder '/store_00010001/DCIM/112EOS5D'.
There is no file in folder '/store_00010001/DCIM/113EOS5D'.
There are 3 files in folder '/store_00010001/DCIM/114EOS5D'.
#1 IMG_0001.JPG rd 347 KB image/jpeg
#2 IMG_0002.JPG rd 342 KB image/jpeg
#3 IMG_0003.JPG rd 336 KB image/jpeg
There is no file in folder '/store_00010001/MISC'.

到此

There is no file in folder '/store_00010001/DCIM/112EOS5D'.
There is no file in folder '/store_00010001/DCIM/113EOS5D'.
There are 5 files in folder '/store_00010001/DCIM/114EOS5D'.
#1 IMG_0001.JPG rd 347 KB image/jpeg
#2 IMG_0002.JPG rd 342 KB image/jpeg
#3 IMG_0003.JPG rd 336 KB image/jpeg
#4 IMG_0004.JPG rd 348 KB image/jpeg
#5 IMG_0005.JPG rd 342 KB image/jpeg
There is no file in folder '/store_00010001/MISC'.

下面是生成代码的内容。 gphoto2 --list-files 给出输出,./reset 是一个简单的 C 代码,用于重置 USB 端口,以便 gphoto2 可以完成它的工作。

sub main {
while (1) {
system("gphoto2 --list-files");
system("./reset /dev/bus/usb/003/021");
sleep 5;
}
}

最佳答案

在我看来,您正在使用一些 C 代码来生成输出,然后您希望以某种方式将该输出放入 Perl 脚本中,以便您可以将其与上次代码运行的输出进行比较,以了解哪些文件是新的。

实现此目的的一种方法是将 c 代码的输出通过管道传输到文本文件中,然后让 c 代码运行一个 Perl 脚本,该脚本将加载上次脚本运行时的图像文件名数组,加载刚刚创建的 c 输出文件,比较文件以查看哪些文件是新的,然后对新文件执行您想要执行的操作。在 Perl 脚本的末尾,您必须修改图像文件名数组,以便下次 Perl 脚本运行时可以使用它进行比较。

您可以使用正则表达式从输出中提取文件名,然后进行数组比较。

关于linux - Perl 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16820350/

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