Unix에서 날짜 변환의 에코를 문자열 변수로 저장하는 중 문제가 발생했습니다.

Unix에서 날짜 변환의 에코를 문자열 변수로 저장하는 중 문제가 발생했습니다.

죄송합니다. 이 질문은 이전에 질문한 내용에서 나온 것입니다.현지 날짜 시간을 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"

관련 정보