我正在使用需要接收格式化在文本文件上的时间指令的设备,以便在基于小时的时间范围内制作备份副本。它有4个通道,所以我仍然需要标记通道。 格式为MMDDhhmmYYYY; C(其中MM =月,DD =天,hh = 24小时,mm =分钟,YYYY =年,C =频道号)
假设我需要在2016年1月25日14:00到2016年1月25日16:00之间为通道1和2指定一个2小时的间隔,我需要在文本文件中放置4行。
012514002016;1
012514002016;2
012515002016;1
012515002016;2
可以手动执行此操作以进行小型查询,但是对于4个频道的一整天,我必须写入96行。 我愿意制作一些脚本来指定开始日期和时间,结束日期和时间以及要求的频道,然后将输出打印为所需格式的文本文件,但我甚至都不知道从哪儿开始。我看到很多脚本可以计算日期之间的间隔,但实际上没有显示间隔。客户端环境有限,但至少它是bash 4.0
答案 0 :(得分:1)
嗯,这是一个开始。这个只增加了几个小时,不会带来几小时到几天,几分钟到几个小时,或实际上任何东西。
#!/bin/sh
MM=$1
dd=$2
hh=$3
mm=$4
yyyy=$5
h2=$6
ni=$7
while [ $ni -gt 0 ]; do
for i in 1 2 3 4; do
printf '%02d%02d%02d%02d%04d;%d\n' $MM $dd $hh $mm $yyyy $i
done
hh=$(($hh + $h2))
ni=$(($ni - 1))
done
所以要在一天内做12个2小时的增量:
$ sh interval 01 25 14 00 2016 2 12