내 동료가 날짜 형식이 앞에 추가된 로그 파일을 생성하고 있습니다 2015120
. 예를 들어 1
대신 1월을 나타냅니다 01
.
이런 종류의 문제를 처리하는 일반적인 방법은 date
command.Like 를 사용하는 것입니다 date +'%Y%m%d'
. 그러나 나는 date 명령을 사용했고 그것이 1월을 나타낸다고 언급하지 않았으며 앞에 0이 없다는 것을 발견했습니다.
2015120
그래서 Linux 처럼 날짜를 표현하는 다른 방법이 있는지 궁금합니다 .
답변1
GNU, FreeBSD 또는 OS/X date
(또는 GNU인 date
시스템 libc
구현 사용 ) 의 경우 후행 하이픈을 추가하면 숫자 필드가 0으로 채워지는 것을 방지할 수 있습니다.strftime()
libc
-
%
$ date +'%Y%-m%d'
2015120
~에서승인하다GNU 시스템에서:
기본적으로 날짜는 숫자 필드를 0으로 채웁니다. 다음 선택적 플래그는 "%" 뒤에 올 수 있습니다.
-(하이픈) 이 필드를 채우지 마십시오.
시스템이 date
이를 지원하지 않으면 다음을 사용할 수 있습니다 perl
.
$ perl -MTime::Piece -e '
$t = localtime;
print $t->year, $t->mon, $t->mday;
'
2015122
답변2
> date +'%Y %m %d' | ( read year month day; echo "${year}${month#0}${day}" )
2015120
답변3
하이픈(-) 뒤에 (1)을 추가하면 Linux에서 실행될 수 있으며 다음으로 포팅될 수도 있습니다.HP-UX(다른 종류의 UNIX가 있을 수 있습니다):
$ date +'%Y%-1m%d'
2015120