Problemas ao armazenar um eco de uma conversão de data em uma variável de cadeia inunix

0

Desculpas, mas esta pergunta vem de uma questão levantada anteriormente: Como posso converter uma data-hora local em data-hora UTC? Toby tem sido absolutamente ótimo em me ajudar com alguma string de conversão - > BST - > GMT mas ow estou enfrentando outro eu acredito problema fictício.

meu .sh é simples:

# 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})$/\ ::/'| xargs date +@%s -d | xargs date -u +%Y%m%d%H%M%S -d'

#printing that value
echo $newPrefix

esperado seria: "20150903190001" que deveria ser o valor atribuído como uma String em $ newPrefix, mas o próprio Unix está lançando esta exceção:

date: extra operand 20:00:01' Trydate --help' for more information.

date: option requires an argument -- 'd' Try 'date --help' for more

information.

Executando o comando sozinho, recebo a saída esperada:

echo "20150903200001"    | sed -re 's/^([0-9]{8})([0-9]{2})([0-9]{2})([0-9]{2})$/\ ::/'    | xargs date +@%s -d    | xargs date -u +%Y%m%d%H%M%S -d

20150903190001

como posso armazenar esse eco na variável newPrefix como uma string? parece que a data de conversão na variável está falhando, mas o eco não está.

alguma ajuda?

    
por Franco 03.09.2015 / 22:47

1 resposta

1

Solução encontrada:)

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})$/\ ::/'| xargs date +@%s -d| xargs date -u +%Y%m%d%H%M%S -d)
echo $newPrefix
echo "$newPrefix"
    
por 02.11.2015 / 12:34