unix中的时间戳变量



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

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

需要帮助将其转换为像"05- june -2023"以及从当前日期算起的剩余天数,即64天。

预期输出

echo $new_var
05-Jun-2023|64 days

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:~$

try this:

# 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"