Parse Date in Bash

前端 未结 10 1662
灰色年华
灰色年华 2020-11-29 02:17

How would you parse a date in bash, with separate fields (years, months, days, hours, minutes, seconds) into different variables?

The date format is: YYYY-MM-D

10条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-29 02:59

    This is simple, just convert your dashes and colons to a space (no need to change IFS) and use 'read' all on one line:

    read Y M D h m s <<< ${date//[-:]/ }
    

    For example:

    $ date=$(date +'%Y-%m-%d %H:%M:%S')
    $ read Y M D h m s <<< ${date//[-: ]/ }
    $ echo "Y=$Y, m=$m"
    Y=2009, m=57
    

提交回复
热议问题