shell unix中的timestamp变量

zzzyeukh  于 2023-04-07  发布在  Shell
关注(0)|答案(2)|浏览(140)

我在bash脚本变量exp_dt中获得以下数据:

exho $exp_dt
Jun  5 08:25:42 2023 GMT

需要帮助将其转换为“2023年6月5日”等格式以及当前日期的剩余天数,即64天。
期望输出

echo $new_var
05-Jun-2023|64 days
gg0vcinb

gg0vcinb1#

ts='Jun  5 08:25:42 2023 GMT'

echo "${ts}"

d=$(date -d "${ts}" +%d-%b-%Y)
sec=$(date -d "${ts}" +%s)
now=$(date +%s)
diff=$(expr $sec - $now)

days=$(expr $diff / 86400 )
new_var="$d|$days days"

echo $new_var

通过运行:

penguin:~$ sh d.sh 
Jun  5 08:25:42 2023 GMT
05-Jun-2023|64 days
penguin:~$
lpwwtiir

lpwwtiir2#

试试这个:

# your date
exp_dt="Jun  5 08:25:42 2023 GMT"

# actual day of year
b=$(date "+%-j")

# day of year of your date
c=$(date -d "$exp_dt" "+%-j")

# diffence of days
new_var=$((c-b))

# your solution
echo $(date -d "$exp_dt" "+%d-%m-%Y") "| $new_var days"

相关问题