HP-UX에서 쉘 스크립트 (KSH 쉘)에서 변수에 저장된 날짜에 승 가능한 GNU date
,이 없기 때문에/B의 차이를 찾는 방법 즉 date
명령의 -d
및 -s
옵션을 사용할 수 없습니다. 주어진 두 날짜의 차이를 일 (Solaris 또는 bash 쉘에서와 같이)에서 어떻게 찾을 수 있습니까?는
Q
는
-2
A
답변
0
Google을 통해 실제로 발견 할 수있는 해결책이 많이 있지만 here은 내가 방금 넘어지면서 간결하게하기위한 것입니다. 두 날짜에 모두 ansi_dn
함수를 사용하고 차이를 계산합니다.
diff_dates.sh
:
#!/bin/ksh
. ./ansi_dn.sh
date_to="$1"
date_from="$2"
echo $((
$(ansi_dn \
$(echo "${date_to}" | cut -d/ -f3) \
$(echo "${date_to}" | cut -d/ -f2) \
$(echo "${date_to}" | cut -d/ -f1) \
)
- $(ansi_dn \
$(echo "${date_from}" | cut -d/ -f3) \
$(echo "${date_from}" | cut -d/ -f2) \
$(echo "${date_from}" | cut -d/ -f1) \
)
))
예 (당신은 년, 월 이미 cut
악몽이 분명히 필요하지 않은 별도의 변수에 두 날짜의 일이있는 경우.) :
$ ./diff_dates.sh 08/05/2013 01/01/1939
27156
을
GNU date
의 정확성을 확인해 보겠습니다.
$ echo $((($(date -d 2013-05-08 +%s) - $(date -d 1939-01-01 +%s) + 43200)/86400))
27156
날짜는 어떤 형식입니까? –
형식은 dd/mm/yyyy – vini
이고 수십/월/시간/마이크로 초의 차이를 원하십니까? ...? 당신은 당신이하려고하는 것에 대해 좀 더 구체적 일 필요가 있습니다. –