2015년 3월과 4월 달력을 인쇄하고 달력 항목을 나란히 표시하려면 어떻게 해야 합니까? 유닉스의 경우
답변1
이 명령은 다음과 같습니다.
paste <(cal 3 2015 | awk '{printf "%-20s\n",$0}') <(cal 4 2015)
다음 출력을 생성합니다.
March 2015 April 2015
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25
29 30 31 26 27 28 29 30
참고: awk 하위 명령은 왼쪽 명령의 마지막 줄을 올바르게 채우는 데 사용됩니다.
편집: cal
기능(옵션 )을 활용하고 더 적은 프로세스가 필요한 -3
보다 컴팩트한 변형은 다음과 같습니다.
cal -3 3 2015 | awk '{print substr($0,23)}'
답변2
cal
지원 매개변수가 더 많은 월을 쉽게 표시하는 경우 -A
현재 및하나다음 달은 다음과 같습니다.
cal -A1
이 방법으로 옵션을 사용하여 현재 월과 연도 이외의 항목이 표시되도록 지정할 수도 있습니다 -m
.2015년 3월이것은 ~이 될 것이다:
cal -A1 -m3 2015
하지만이를 사용할 수 없는 경우 -A
두 출력을 다음과 결합할 수 있습니다 pr
.
pr -t -m <(cal <your_params>) <(cal <your_params>)
또는 다음과 같이 paste
:
paste <(cal <your_params>) <(cal <your_params>)
답변3
cal -3| awk '{print substr($0,23)}'