So today I had a requirement to convert some Epoch-formatted dates, located in a CSV file, into human-readable dates...
So today I learned about awk vs. gawk, and the strftime() function ...
I also learned that awk on macOS isn't the same as "real" Gnu awk ( aka gawk ), hence the need for gawk ...
I started by installing gawk: -
brew install gawk
and then updated my PATH to reflect it: -
PATH="/opt/homebrew/opt/gawk/libexec/gnubin:$PATH"
Using an example of my data: -
cat file.txt
1681486514
1681990787
1681992853
1681712949
which is WAY simpler than my real data, I was then able to munge it using awk ( or, really, gawk ) : -
awk 'BEGIN { FS = ","} ; {$1 = strftime("%c", $1)} 1' file.txt
which returns: -
Fri 14 Apr 16:35:14 2023
Thu 20 Apr 12:39:47 2023
Thu 20 Apr 13:14:13 2023
Mon 17 Apr 07:29:09 2023
I'd previously done much the same using Excel, via a formula: -
=F17/86400+DATE(1970,1,1)
where cell F17 contained the Epoch-formatted date
But scripts are so much more fun ...