UNIX 출력을 원합니다 date
.
So this is week 35 of 2016.
물론 여기서는 35와 2016이 date 명령의 출력입니다. 나는 다음을 시도했습니다 :
date +%U
그러면 현재 주 번호가 인쇄됩니다. 하지만 표시하고 싶은 특정 텍스트로 묶어야 합니다. 나는 시도했다:
date "So this is week: %U"
date "It is currently: "+ "%U"
둘 다 나에게 오류가 발생합니다. 이 date
명령이 내가 원하는 특정 형식으로 주 번호를 표시하도록 하려면 어떻게 해야 합니까 ?
답변1
전체 형식 문자열 앞에는 다음이 와야 합니다 +
.
$ date +"So this is week: %U"
So this is week: 19
$ date +"So this is week: %U of %Y"
So this is week: 19 of 2016
답변2
주는 두 가지 유형이 있습니다.
- 월요일을 첫날로
- 일요일이 첫날이에요
따라서 다른 요일에 있을 때(CentOS7)는 정확히 동일하지 않습니다.
[[email protected]:~]# date
Mon Aug 26 18:02:47 CST 2019
[[email protected]:~]# date +%U
34
[[email protected]:~]# date +%V
35
date --help
%U week number of year, with Sunday as first day of week (00..53)
%V ISO week number, with Monday as first day of week (01..53)
답변3
date 명령에는 실제로 3개의 주 번호가 있습니다.
- %U 1년의 주 수, 일요일은 주의 첫 번째 날입니다(00..53).
- %W 일년의 주 수, 월요일은 주의 첫 번째 날입니다(00..53).
- %V ISO 주 번호, 월요일은 주의 첫 번째 날입니다(01..53).
답변4
달력 주/연도를 ISO 주/ISO 연도와 혼동하지 마세요! 예를 들어 솔루션
echo "So this is week `date +%V` of `date +%Y`."
부정확하다!, 예를 들어 1.1.2023의 경우 의미 없는 결과를 반환하기 때문입니다.
> date -d "2023/01/01" +"%F is week %V year %Y"
2023-01-01 is week 52 year 2023
ISO 달력에는 +%V +%G만 사용하고 일반 달력에는 +%W/%U +%Y를 사용합니다.
> date -d "2023/01/01" +"%F is week %V year %G"
2023-01-01 is week 52 year 2022
> date -d "2023/01/01" +"%F is week %W year %Y"
2023-01-01 is week 00 year 2023
위키피디아에 대한 추가 정보:ISO 요일 날짜