我希望你们中的一位 bash、sed、awk 专家可以帮助我。我有这个字符串:
00:00:00:00:00:00%~%System1%~%s0:00-21:40%~%m3:10-17:10%~%t11:20-20:30%~%w05:10-9:30%~%t00:00-21:30%~%f12:00-0:00%~%s6:00-18:00
它是由“%~%”分隔的字段。前两个字段可以忽略。其余字段具有白天时间范围。这应该澄清格式:
00:00:00:00:00:00 <--Mac
System1 <--Name
s00:00-21:40 <--Sunday 12 AM through 9:40 PM
m03:10-17:10 <--Monday 3:10 AM through 5:10 PM
t11:20-20:30 <--Tuesday 11:20 AM through 8:30 PM
w05:10-9:30 <--Wednesday 5:10 AM through 9:30 AM
t00:00-21:30 <--Thursday 12 AM through 9:30 PM
f12:00-0:00 <--Friday 12 PM through 12:00 AM
s06:00-18:00 <--Saturday 6 AM through 6:00 PM
现在诀窍......我需要确定当前系统日期时间是否在范围内。:-(
所以,如果日期返回这个:
Wed Sep 19 14:26:05 UTC 2012
然后它不在为星期三指定的范围内。我基本上需要一个 if 语句。如果它在范围内,我需要执行一个脚本,如果不在范围内,我需要执行一个不同的脚本。我将如何使用 bash、awk 和/或 sed 来做到这一点?
谢谢你的尽心帮助!
我开始走这条路:
arr=$(echo $line | tr "%~% " "\n")
for x in $arr
do
#Now what? Some kind of switch/case?
done