我想知道自从使用shell (bash)以来,有多少天、几个小时和几分钟过去了。awk似乎是正确的工具,因为我需要计算、格式化和打印到命令行。
预期产出:
"Elapsed Time: "
"Days: 3123"
"Hours: 12"
"Minutes: 23"算法思想:
time_now = get_time()
time_then = some_constant
diff = time_now - time_then # this is all in seconds
days = round( diff / 86400 ) # to nearest floor integer
print( days )
diff -= diff - (days*86400)
hours = round( diff/3600 )
print (hours)
diff = diff - (hours*3600)
minutes = round( diff/60 )
print( minutes )我如何在awk中做到这一点?我想出了这个:
date +%s | awk '{time_then = 815002800; diff = $1-time_then}; {print (diff/86400)}' | sed 's/\.[1-9]*//' | awk '{print "Days: " $0 }'sed移除十进制后的数字。总是向下舍入这个数字(所以它是一个整数)。
我怎么才能把时间和时间都塞进去呢?感觉一定有更好的方法。也许我用错了工具?
发布于 2013-12-24 09:38:16
您的算法可以直接用awk表示:
date +%s | awk '{
time_now = 815002800
time_then = some_constant
diff = time_now - time_then # this is all in seconds
days = int(diff / 86400) # to nearest floor integer
print days
diff -= days * 86400
hours = int(diff/3600)
print hours
diff -= hours*3600
minutes = int(diff/60)
print minutes
}'will print
```javascript九四三二
21
40
https://stackoverflow.com/questions/20758155
复制相似问题