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
之间执行某些操作,我该怎么做?请帮忙