web-dev-qa-db-fra.com

Obtenez le mois et le jour à partir de la date

J'essaie d'obtenir le mois et la date de la date sous Linux. c'est mon code

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

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

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

# Day 
echo "Day:"$DD
echo "Month:"$MM
17
user1570210

Dans sh ou 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"
30
cyfur01

Ou si vous voulez la date actuelle, utilisez date +%Y/%m/%d. Si vous les voulez séparément, vous pouvez faire quelque chose comme ceci:

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

Une approche plus simple consiste à:

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

Cependant, dans ce cas, vous exécutez date deux fois, ce qui est inefficace, et si vous n'avez vraiment pas de chance, la date pourrait changer entre ces deux lignes;)

20
Anders Johansson
kent$  D="2013/01/17"

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

si vous voulez juste un mois ou un jour, laissez simplement 2 $ ou 3 $ là-bas, supprimez les pièces dont vous n'avez pas besoin

Éditer

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

kent$  echo $year
2013
2
Kent