UNIX에서 달력을 역순으로 인쇄하는 방법은 무엇입니까?

UNIX에서 달력을 역순으로 인쇄하는 방법은 무엇입니까?

command 를 사용하여 터미널에서 달력을 인쇄하고 싶지만 cal -y역순으로 인쇄하고 싶습니다. 12월부터 1월까지 달력을 인쇄하려면 무엇을 추가해야 하나요?

답변1

1개 열의 출력에 만족하는 경우:

for m in {12..1}; do cal $m 2016; done

실제로는 반대이지만 원하는 것은 아닐 수도 있습니다.

cal -y | tac

3개월 행별로 3개 열로 반전됨:

cal -y | perl -0777 -ne 's/\s*$//;@r=split /(\n(?=  +[A-Z]))/; print reverse @r';

그리고 연도가 여전히 최상위에 있습니다.

cal -y | perl -n0777e '
    s/\s*$//; @r=split /(\n(?= +[A-Z]))/; $y=shift @r;
    print $y,"\n",reverse @r;'

관련 정보