我的文件名称为
ABC_-_123321.20140505_-_161500.CSV
ABC_-_654145.20140506_-_135020.CSV
String_-_SerialID.
Date
_-_
Time
.CSV
开始日期、开始时间、结束日期和 时间结束作为输入给出。
我怎样才能得到全部文件名(或相对路径)有日期和时间给定之间日期和时间范围并使用 shell 脚本将它们写入日志文件?
日期和时间不是最后访问或修改的日期/时间戳,并且文件名中没有空格。
我可以选择日期和时间例如,单独输入,字段之间没有任何分隔符,
20140706
165030
或者我可以将输入视为
20140706165030
答案1
完成这项工作的算法:
对于每个文件获取日期并使差异与给定日期相同。请通过以下链接了解日期差异。
对于solaris(没有GNU日期的unix)使用这个 关联
如果您想要明智的时间,请在 date for 循环内使用循环 for time 。要获得时间差异,您可以使用以下代码
time1=14:30
time2=$( date +%H:%M ) # 16:00
diff=$( echo "$time2 - $time1" | sed 's%:%+(1/60)*%g' | bc -l )
echo $diff hours
# outputs 1.5 hours
这里sed
将 a 替换:
为转换为 1/60 的公式。然后通过bc
(单击关联了解更多信息)。
注意:如果DIFFERENCE为+ve则日志/内容可以放入指定文件否则不能