내 입력은 내가 다음과 같은 기능을 사용하고 Apr 11 16 05:10:20
16 04 11 05 10 20
에 변환 할유닉스에서 시간을 hh : mm : ss에서 hh mm ss로 분할하는 방법은 무엇입니까?
./filename Apr 11 16 05:10:20 Jun 12 16 06:22:35
,
convert_date_2()
{
local months=(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
local i
for ((i=0; i<11; i++))
do
[[ $1 = ${months[$i]} ]] && break
done
printf "%2d %02d %02d %02d %02d %02d \n" $3 $((i+1)) $2 $4 $5 $6
}
Start=$(convert_date_2 $1 $2 $3 $4)
Stop=$(convert_date_2 $5 $6 $7 $8)
echo $Start;
echo $Stop;
입니다하지만 16 04 11 05 00 00
및 16 06 12 06 00 00
같은 출력을 얻고있다. 실제로 나는 16 04 11 05 10 20
과 16 06 12 06 22 35
을 원합니다.
어떻게 수정할 수 있습니까?
감사합니다. 하지만 내 로그 파일의 데이터가 '16'형식으로되어 있기 때문에 '2016 '을 사용할 수 없습니다. 형식을 변경할 수 없습니다. '16'을 1 년 동안 사용할 수 있습니까? 어떻게 결과를 변수에 저장할 수 있습니까? '시작 = $ (convert_date_2 $ 1 $ 2 $ 3 $ 4)'이 효과가 있습니까? – Vishwaroopa
@Vishwaroopa, 내 업데이트를 참조하십시오. – sat
감사의 답변 괜찮습니다. – Vishwaroopa