특정 연도의 해당 날짜와 날짜를 인쇄하고 싶습니다.
입력한 예시 연도는 2018년이고 월은 2월입니다. 그래서 출력이 표시됩니다
Date. Day
1. thursday
2. Saturday
.
.
.
.
28. Wednesday
답변1
당신은 리눅스 초보자를 위한 좋은 운동을 설명하고 있으므로 숙제를 주지는 않겠지만, 당신이 그것을 할 수 있도록 질문에 답해 드리겠습니다.
date
먼저 이 명령인 의 사용법을 알아보세요 awk
. 이 date
명령에는 요일을 숫자 형식으로 출력하는 기능이 있으므로, 명령줄에 이를 입력하면 date +%u
다음과 같이 요일을 알 수 있습니다.월요일에. 다른 요일에 대해서는 d
예를 들어 옵션을 사용하십시오 date -d2018-02-22 +%u
. +%A
"목요일"과 같이 해당 지역의 요일 이름에 대한 형식 코드 도 있습니다 . 이 명령과 다른 많은 이점에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오 date
.
그러면 선택의 여지가 있습니다. 명령 을 반복하여 date
매월 매일 결과를 인쇄할 수도 있고, 편안하다고 느끼는 스크립트나 프로그래밍 언어를 사용하여 기본적으로 반복할 수도 있습니다. 예를 들어, 모듈로 수학 연산자를 사용하여 %
일주일 중 7일을 반복 n%7
하고 case
이를 명령문으로 인쇄하거나 요일 이름의 7개 요소 배열을 정의할 수 있습니다. 예를 들어 다음은 배열을 정의하고 사용하는 방법입니다 bash
.
dow=( Sun Mon Tues Wed Thu Fri Sat ) ; printf "%s\n" ${dow[4]}
이제 남은 것은 언제 중지할지 루프에 알려주는 것입니다. 당신이 다루고 있는 달은 몇 일입니까? 아마도 12개 요소의 배열을 사용하는 것이 가장 쉬울 것입니다. 각 요소는 해당 월의 일 수를 포함합니다. 윤년의 2월이 29일인지 확인하려면 외부 테스트를 수행해야 합니다.
을 사용하는 경우 awk
,할 수 있다이를 사용하십시오. 그러나 스트림 편집기로 설계되었으며 스트림을 다루지 않기 때문에 작업에 가장 적합한 도구는 아닐 것입니다. 하지만, 당신의 직업이라면필요 awk
, 그러면 여기서 막히게 됩니다.