Convertir une date d'époque au format lisible par l'homme?

3
echo "$some_string" | awk -F '|' '{print $1 $2}'

$2est une date et je veux le convertir en format lisible par l’homme. J'ai essayé de faire date -r $2mais pas de chance.

utilisateur9980782
la source

Réponses:

3

Si vous pouvez obtenir GNU awk sur votre Mac (via homebrew), vous pouvez faire:

gawk '{print $1, strftime("%Y-%m-%d %H:%M:%S", $2)}'

personnalisez votre format de date / heure

Sinon, vous pouvez appeler la date depuis awk:

awk '{
    cmd = "date -d \"@" $2 "\" \"+%Y-%m-%d %H:%M:%S\""
    cmd | getline datetime
    close(cmd)
    print $1, datetime
}'

Je n'ai pas accès à un Mac, vous devrez donc ajuster vos arguments de date en conséquence.

Glenn Jackman
la source
2
echo "$some_text" | awk -F'|' '{
    cmd = "date -r "$2" \"+%Y-%m-%d %H:%M:%S\""
    cmd | getline datetime
    close(cmd)
    print "text: "$1 "\ndate: "datetime"\n"
}'
utilisateur9980782
la source