Asterisk:如何将时间转换为秒
Asterisk: How to convert time to seconds
我只想打印 9 美元超过一小时的任何结果
我如何将其转换为秒数?
所以我可以使用 3600sec 进行检查。
9 美元 = 通话时长 00:00:00
asterisk -rx "core show channels verbose" | awk ' > "01:00:00"' | awk ' == "Dial"' | wc -l > test.txt
您可以简单地从格式 hh:mm:ss
中提取 hour
minute
和 sec
,如下所示:
h=$(echo "" | cut -d":" -f1)
m=$(echo "" | cut -d":" -f2)
s=$(echo "" | cut -d":" -f3)
因为您现在手边已经有了 h
m
和 s
值,您可以像这样将其转换为秒数:
totalsec=$(echo "$h*3600+$m*60+$s"|bc)
如果您只需要检查几个小时,请使用 $h
。
正如有人提到的,最简单的事情是检查时间的前两位数是否不是“00”。像这样:
asterisk -rx "core show channels verbose" | awk ' !~ /00:..:../ && == "Dial"' | wc -l
这意味着它将匹配并记录“01:00:00”,这可能不是您想要的:-(。它匹配“大于或等于一小时的 $9”。
这将符合您的 "greater than" 条件:
asterisk -rx "core show channels verbose" | awk ' !~ /00:..:../ && != "01:00:00" && == "Dial"' | wc -l
我只想打印 9 美元超过一小时的任何结果
我如何将其转换为秒数?
所以我可以使用 3600sec 进行检查。
9 美元 = 通话时长 00:00:00
asterisk -rx "core show channels verbose" | awk ' > "01:00:00"' | awk ' == "Dial"' | wc -l > test.txt
您可以简单地从格式 hh:mm:ss
中提取 hour
minute
和 sec
,如下所示:
h=$(echo "" | cut -d":" -f1)
m=$(echo "" | cut -d":" -f2)
s=$(echo "" | cut -d":" -f3)
因为您现在手边已经有了 h
m
和 s
值,您可以像这样将其转换为秒数:
totalsec=$(echo "$h*3600+$m*60+$s"|bc)
如果您只需要检查几个小时,请使用 $h
。
正如有人提到的,最简单的事情是检查时间的前两位数是否不是“00”。像这样:
asterisk -rx "core show channels verbose" | awk ' !~ /00:..:../ && == "Dial"' | wc -l
这意味着它将匹配并记录“01:00:00”,这可能不是您想要的:-(。它匹配“大于或等于一小时的 $9”。
这将符合您的 "greater than" 条件:
asterisk -rx "core show channels verbose" | awk ' !~ /00:..:../ && != "01:00:00" && == "Dial"' | wc -l