27

Linuxで日付から月と日付を取得しようとしています。これは私のコードです

# Set Date 
D="2013/01/17"

# get day 
DD=$(D+"%d")

# get day 
MM=$(D+"%M")

# Day 
echo "Day:"$DD
echo "Month:"$MM
4

3 に答える 3

43

shまたはbash:_

D="2013/01/17"
DAY=$(date -d "$D" '+%d')
MONTH=$(date -d "$D" '+%m')
YEAR=$(date -d "$D" '+%Y')

echo "Day: $DAY"
echo "Month: $MONTH"
echo "Year: $YEAR"
于 2013-01-23T22:44:45.647 に答える
23

または、現在の日付が必要な場合は、を使用しますdate +%Y/%m/%d。それらを個別に必要とする場合は、次のようなことを行うことができます。

read YYYY MM DD <<<$(date +'%Y %m %d')
echo "Today is Day:$DD Month:$MM"

より簡単なアプローチは次のとおりです。

DD=$(date +%d)
MM=$(date +%m)
echo "Today is Day:$DD Month:$MM"

ただし、この場合はdate2回実行しているため非効率的であり、本当に運が悪ければ、日付がこれら2行の間で変わる可能性があります;)

于 2013-01-23T22:46:54.350 に答える
4
kent$  D="2013/01/17"

kent$  awk -F/ '{print "year:"$1,"Month:"$2,"Day:"$3}'<<<$D
year:2013 Month:01 Day:17

月または日だけが必要な場合は、2ドルまたは3ドルのままにして、不要な部分を削除します

編集

kent$  year=$(awk -F/ '{print $1}' <<<$D)                                                                                                                                   

kent$  echo $year
2013
于 2013-01-23T22:39:20.413 に答える