2017-12-28 23 views
0

2 개의 변수에 2 개의 날짜를 저장하려고하지만 특정 형식 (파일의 이름은이므로)이 있습니다.날짜 및 시간을 변수의 특정 형식으로 저장 | linux debian sh 스크립트

그들은 다음

2014-10-27_08.01.01 
2014-10-27_18.00.01 

그래서 내가

startdate=$(date -d -u +"2014-10-27_08.01.01")

enddate=$(date -d -u +"2014-10-27_18.00.01")

으로 내 스크립트에서이 그러나 내가 쉬 스크립트를 실행 할 때마다 내가 잘못된를 얻을 수로 지정됩니다 날짜 오류. 아마 읽을 수는 없지만 수정 방법을 알 수는 없습니다.

답변

0

date 문자열에서 밑줄 _ 및 점 .을 이해하지 못합니다. 당신이이됩니다 예를

startdate=$(echo "2014-10-27_08.01.01"|sed -e 's/_/ /g' -e 's/\./:/g') 
enddate=$(echo "2014-10-27_18.00.01"|sed -e 's/_/ /g' -e 's/\./:/g') 

를 들어, 작동 뭔가로 변환해야합니다 여기

~]# date -u -d "$startdate" 
Mon Oct 27 08:01:01 UTC 2014 

은 파일 이름에 문자열을 포맷하는 함수를 사용하는 스크립트입니다

#!/bin/bash                                         

inputDateFmt() 
{ 
    sed -e 's/_/ /g' -e 's/\./:/g' <<< "$1" 
} 
startdate=$(date -u -d "$(inputDateFmt "2014-10-27_08.01.01")") 
enddate=$(date -u -d "$(inputDateFmt "2014-10-27_18.00.01")") 
echo $startdate 
echo $enddate 

결과 :

~]# ./datefmt.bash 
Mon Oct 27 08:01:01 UTC 2014 
Mon Oct 27 18:00:01 UTC 2014 
+0

안녕하십니까. 응답 해 주셔서 감사합니다. 그러나 제가 이것을 위해 필요한 것을 조금 더 설명하겠습니다. 그래서 기본적으로 나는 누락 된 날짜에 대한 txt 파일을 확인해야하며 날짜는 언급 한 것처럼 형식화됩니다. – Wankish