Como executar comandos em uma variável contendo uma data?

0

Eu preciso conseguir uma data no formato "MM / DD / AA" e alterá-la de volta para o formato de data padrão (sex, 31 de outubro, 17:23:07 CDT 2014). Isto está me enlouquecendo. O código abaixo pode parecer inútil, mas é apenas uma prática para uma atribuição onde eu tenho que fazer exatamente isso - alguém insere uma data no formato MM / DD / AA, então eu tenho que comparar essa data com datas armazenadas em um arquivo no formato padrão.

Aqui é onde eu estou:

#! /bin/bash

date='date +%D'
newdate='$date +%a%b%e%H:%M:%S%Z%Y'

echo $newdate

Estou recebendo o erro "Nenhum arquivo ou diretório". Primeiramente; como eu faria o que estou tentando fazer? Segundo; existe uma maneira mais fácil de usar para o formato de data padrão em vez de "+% a% b% e ... blá blá ..."?

Obrigado por qualquer ajuda.

    
por Shane 31.10.2014 / 23:34

1 resposta

1

Eu não quero fazer sua lição de casa para você, mas isso pode apontar você na direção certa:

#!/bin/sh

date='date +%D'
echo "Date in MM/DD/YY:"
echo $date

newdate='date -d $date +"%a %b %e %H:%M:%S %Z %Y"'
echo "Date Expanded:"
echo $newdate

hash="$(echo -n "$newdate" | md5sum | awk '{print $1}')"
echo "Hash of expanded date:"
echo $hash

Você pode criar valores de hash de todas as datas expandidas, incluindo as que você precisará compará-los e, em seguida, apenas comparar os dois valores de hash. Se o == tiver uma correspondência.

if [ "$hash1" == "$hash2" ]
then
    echo "Dates are a match!"
else
    echo "Dates are NOT a match..."
fi

Espero que ajude. Boa sorte com sua tarefa.

    
por 01.11.2014 / 00:09

Tags