Shell 在一张邮戳上增加多少小时? 我有一个文件,其中包含YYYYMMDDhhmmss.sss中的时间 我使用以下命令仅从文件中获取小时/分钟 开始=grep-i“XYZ”| head-1 | awk'{print$3}'| cut-c9-12 start变量将包含小时/分钟数(例如:-1041[HHMM]) 我的任务是把这个时间增加60分钟
请帮我这么做。我没有使用系统日期 这是我试过的, 开始=Shell 在一张邮戳上增加多少小时? 我有一个文件,其中包含YYYYMMDDhhmmss.sss中的时间 我使用以下命令仅从文件中获取小时/分钟 开始=grep-i“XYZ”| head-1 | awk'{print$3}'| cut-c9-12 start变量将包含小时/分钟数(例如:-1041[HHMM]) 我的任务是把这个时间增加60分钟,shell,ksh,aix,Shell,Ksh,Aix,请帮我这么做。我没有使用系统日期 这是我试过的, 开始=grep-i“XYZ”| head-1 | awk'{print$3}'| cut-c9-12 结束=$($start)+3600) 但这种逻辑是错误的,因为它会像一个正常的数字一样加起来。将时间转换为秒也是一项乏味的工作。有没有办法通过系统命令增加?请建议。60分钟是1小时,所以您需要做的就是将时间增加1小时。这可以通过将100添加到HHMM时间来完成,如下所示: start="$1" # add 100 to the start ti
grep-i“XYZ”| head-1 | awk'{print$3}'| cut-c9-12
结束=$($start)+3600)
但这种逻辑是错误的,因为它会像一个正常的数字一样加起来。将时间转换为秒也是一项乏味的工作。有没有办法通过系统命令增加?请建议。60分钟是1小时,所以您需要做的就是将时间增加1小时。这可以通过将
100
添加到HHMM
时间来完成,如下所示:
start="$1"
# add 100 to the start time to increment the hour
newTime=$((10#$start+100))
# check if we have crossed midnight
if (( newTime >= 2400 )); then
newTime=$((newTime-2400))
fi
#pad with leading zero
newTime="$(printf %04d $newTime)"
echo "$newTime"
嘿,非常感谢。如果我必须在
$start
和$newTime
之间执行某些操作,我该怎么做?请帮忙