명령의 날짜와 시간에서 5분을 뺀 값을 가져와야 합니다 date
.
date:
29 Aug 2018 21:56:01
result:
29 Aug 2018 21:51:02
인터넷/포럼에서 검색을 시도했지만 대부분 해당 -d
옵션을 사용하는 것과 관련이 있으며 내가 지원하지 않는 옵션도 있습니다 -d
.
이것은 Bash에서 작동하지만 ksh에서 작동하는 것이 필요합니다.
$ printf "%(%d %h %Y %H:%M:%S)T\n" $(( $(printf "%(%s)T") - 5 * 60 ))
답변1
bash
실제로 %(...)T
ksh93의 형식을 복사하지만 일부만 복사합니다.
ksh93의 기능은 훨씬 더 강력합니다.
$ date; printf '%(%c)T\n' 'exactly five minutes ago'
Mon 3 Sep 08:08:32 BST 2018
Mon Sep 3 08:03:32 2018
bash
Unix epoch 시간만( -1
또는지금, 최신 버전에서는 다음을 얻을 수도 있습니다.지금누락된 매개변수) ksh93은 복잡한 상대 관계( at
위의 영어, crontab, ISO 8601:2004 기간 포함) 또는 절대 시간 사양을 지원합니다(참조:테스트 데이터일부 예제의 소스 코드에서).
에서 ksh93
epoch 시간을 전달하려면 prefix를 사용하세요 #
.
$ printf '%(%c)T\n' '#0'
Thu Jan 1 00:00:00 1970
답변2
당신이 사용할 수있는 perl
:
echo $(( $(printf "%(%s)T") - 5 * 60 )) | perl -lne 'print scalar localtime $_'
또는 순수한 Perl에서는:
perl -le 'print scalar localtime(time()-5*60)'
포맷을 사용하려면 다음을 수행하십시오 strftime()
.
perl -MPOSIX=strftime -le 'print strftime("%d %h %Y %H:%M:%S", localtime(time()-5*60))'