죄송합니다. 이 질문은 이전에 질문한 내용에서 나온 것입니다.현지 날짜 시간을 UTC 날짜 시간으로 변환하는 방법은 무엇입니까?Toby는 몇 가지 문자열 변환 --> BST --> GMT를 처리하는 데 큰 도움을 주었지만 지금은 바보 같다고 생각되는 또 다른 문제에 직면해 있습니다.
내 .sh는 매우 간단합니다.
# variables needed for testing
DateNew="20150903"
TimeNew="200001"
# concatenating date and time
DateTimeNew_Suffix=${DateNew}${TimeNew}
# storing the conversion provided by Toby Speight into a variable
newPrefix=`echo "${DateTimeNew_Suffix}"| sed -re 's/^([0-9]{8})([0-9]{2})([0-9]{2})([0-9]{2})$/\1\\ \2:\3:\4/'| xargs date +@%s -d | xargs date -u +%Y%m%d%H%M%S -d`
#printing that value
echo $newPrefix
기대는 다음과 같습니다"20150903190001"이는 $newPrefix에 문자열로 할당된 값이어야 하지만 Unix 자체에서는 다음 예외가 발생합니다.
날짜: 추가 피연산자
20:00:01' Try
날짜 --help'를 참조하세요.날짜: 옵션에는 하나의 인수가 필요합니다. -- 'd' 자세한 내용을 보려면 `date --help'를 사용해 보십시오.
정보.
명령만 실행하면 예상되는 결과가 나타납니다.
echo "20150903200001" | sed -re 's/^([0-9]{8})([0-9]{2})([0-9]{2})([0-9]{2})$/\1\\ \2:\3:\4/' | xargs date +@%s -d | xargs date -u +%Y%m%d%H%M%S -d
20150903190001
이 에코를 문자열로 newPrefix 변수에 어떻게 저장할 수 있나요? 날짜를 변수로 변환하는 데 실패한 것 같지만 에코는 그렇지 않습니다.
도움이 필요하세요?
답변1
해결책을 찾았습니다 :)
DateNew='20150903'
TimeNew='200001'
DateTimeNew_Suffix=${DateNew}${TimeNew}
newPrefix=$(sed -n 1p $filename | sed -re 's/^([0-9]{8})([0-9]{2})([0-9]{2})([0-9]{2})$/\1\\ \2:\3:\4/'| xargs date +@%s -d| xargs date -u +%Y%m%d%H%M%S -d)
echo $newPrefix
echo "$newPrefix"