Linux 根据从时间计算的文件名处理文件

Linux 根据从时间计算的文件名处理文件,linux,bash,awk,filesystems,raspberry-pi,Linux,Bash,Awk,Filesystems,Raspberry Pi,我有一台远程Linux计算机,一台raspberry pi,每分钟拍两张照片,然后上传到Linux服务器。这些照片的名称如下:SITE-03-22-16-091543.jpeg。文件名的格式为:Sitename-month-day-year-hourminutesecond.jepg。在通过scp发送照片之前,我使用exiv2在每张照片中嵌入了一些当地的天气数据。这样,天气状况就会存储在每张照片中。所有这些都很好。我希望有大约15个这样的快照,每分钟向服务器发送两个快照 在服务器端,这些照片存储

我有一台远程Linux计算机,一台raspberry pi,每分钟拍两张照片,然后上传到Linux服务器。这些照片的名称如下:SITE-03-22-16-091543.jpeg。文件名的格式为:Sitename-month-day-year-hourminutesecond.jepg。在通过scp发送照片之前,我使用exiv2在每张照片中嵌入了一些当地的天气数据。这样,天气状况就会存储在每张照片中。所有这些都很好。我希望有大约15个这样的快照,每分钟向服务器发送两个快照

在服务器端,这些照片存储在它们自己的站点文件夹中。这个想法是从每个网站制作延时视频。我们感兴趣的时间推移有四种类型:

1) 24小时循环,从上午12:00到晚上11:59

2) 日出循环,从日出前30分钟到日出后2小时

3) 日落循环,从日落前2小时到日落后30分钟

4) 日光循环,从日出前30分钟到日落后30分钟

24小时循环很简单

日出和日落循环有点棘手。我从SourceForge()上的Ian Craig下载并编写了“sunwait”程序。使用命令“sunwait list rise 35.1174N 89.9711W | gawk-F:{print$1$2}”生成输出0700,即我所在位置的太阳升起。使用“设置”选项,生成1913年的日落。因为我不住在赤道,日出和日落的时间从早上5:30到7:30不等。视季节而定。当然

我有代码将图像列表编译到move、add-on-overlay中,并添加嵌入的天气数据。问题是如何创建日出前30分钟+2小时的图片列表。然后日落前2小时+30分钟过去。最后,从日出前30分钟一直到日落前30分钟


我相信答案是数学!有人能在黄砖路上启动我吗?

awk
救援

在此处替换脚本以通过echo生成时间

$ echo 07:10 | 
  awk -F: -v offset=30 -v path="$filepath" '{
                         h=$1-int(offset/60);
                         m=$2-offset%60;
                         if(m<0) {m=m+60; h--}
                         for(i=0;i<=150;i++)
                           {m++;
                            if(m>59) {m=m%60; h++};
                            printf path"%02d%02d.jpeg\n",h,m}}'
$echo 07:10 |
awk-F:-v offset=30-v path=“$filepath””{
h=1美元整(偏移量/60);
m=2美元-偏移量%60;

如果(m
awk
去救援

在此处替换脚本以通过echo生成时间

$ echo 07:10 | 
  awk -F: -v offset=30 -v path="$filepath" '{
                         h=$1-int(offset/60);
                         m=$2-offset%60;
                         if(m<0) {m=m+60; h--}
                         for(i=0;i<=150;i++)
                           {m++;
                            if(m>59) {m=m%60; h++};
                            printf path"%02d%02d.jpeg\n",h,m}}'
$echo 07:10 |
awk-F:-v offset=30-v path=“$filepath””{
h=1美元整(偏移量/60);
m=2美元-偏移量%60;

如果(mThanks.看起来如果日出时间晚于半小时,比如06:35,这将减去1小时30分钟。不是30分钟。你非常接近。另外,我想在printf命令中嵌入图片路径和站点名称,但它会在输出$homediir/site/$sitefilename0821*.jpeg中显示这一点。再次感谢。我们重新关闭。这确实解决了时间问题。我可以问你几个问题吗,因为代码按照我的要求执行。我需要再添加一件事。直接提问。如果是一般性问题,您可能希望创建一个新问题以征求更多答案。谢谢。代码的目的是生成一个文件列表,其中列出了我们创建的网站文件夹中的所有照片在日出前30分钟和日出后2小时重新拍摄。此代码会生成这些照片的部分可能文件名列表。我在“printf path”%02d%02d*.jpeg\n“,h,m}行中添加了一个*。并将结果输出到一个名为filelist.txt的单独文件中。该文件中的一行如下所示:/home/server/webcam/sites/home/home-03-28-16-0623*.jpeg。由于每分钟有2张照片,当我不知道照片的剩余2位数字是多少时,如何收集所有可能文件的完整列表?谢谢。它看起来很简单帽子如果日出时间晚于半小时,比如06:35,这将减去1小时30分钟。不是30分钟。你非常接近。另外,我想在printf命令中嵌入图片路径和站点名称,但它会在输出$homediir/site/$sitefilename0821*.jpeg中显示这一点。再次感谢。我们很接近了。这没有问题x时间问题。我可以问你几个问题吗?因为代码按照我的要求执行。我还需要添加一件事。直接提问。如果是一般性问题,你可能希望创建一个新问题来征求更多答案。谢谢。代码的目的是生成一个文件列表,列出网站文件夹中30分钟前拍摄的所有照片日出前和日出后2小时。此代码会生成这些照片的部分可能文件名列表。我在“printf path”%02d%02d*.jpeg\n“行中添加了一个*,h,m}}。并将结果输出到一个名为filelist.txt的单独文件中。该文件中的一行如下所示:/home/server/webcam/sites/home/home-03-28-16-0623*.jpeg。既然每分钟有2张照片,我不知道照片的剩余两位数是多少,如何收集所有可能文件的完整列表?