year=2013;for month in $(seq 12);do cal $month $year|awk -vy=$year -vm=$month 'NR==2{for(w=0;w<NF;w++)week[w]=$(w+1)}NR>2{for(d=NF;d>0;d--)day[10000*y+100*m+$d]=($d>7)?week[d-1]:week[6-NF+d]}END{for(d in day){print d"["day[d]"]"}}';done|sort
復(fù)制代碼
year=2013;for month in $(seq 12);do cal $month $year|sed '1,2d;s/ /\n/g'|xargs -Iday date -d $year-$month-day +%Y%m%d[%a];done