bash、sed、awk の専門家の 1 人が私を助けてくれることを願っています。私はこの文字列を持っています:
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
「%~%」で区切られたフィールドです。最初の 2 つのフィールドは無視できます。残りのフィールドには、日中の範囲があります。これにより、形式が明確になります。
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文が必要です。範囲内にある場合は 1 つのスクリプトを実行し、そうでない場合は別のスクリプトを実行する必要があります。bash、awk、および/またはsedを使用してそれを行うにはどうすればよいですか?
ご協力いただきありがとうございます。
私はこの道を進み始めました:
arr=$(echo $line | tr "%~% " "\n")
for x in $arr
do
#Now what? Some kind of switch/case?
done