pkg query timestamp format
David Christensen
dpchrist at holgerdanske.com
Sat Jul 13 20:39:57 UTC 2019
On 7/13/19 2:31 AM, @lbutlr wrote:
>
>
>> On 12 Jul 2019, at 18:30, David Christensen <dpchrist at holgerdanske.com> wrote:
>>
>> On 7/12/19 11:12 AM, Robert Fitzpatrick via freebsd-questions wrote:
>>> When I use the following command, I get packages with timestamp installed in epoch Unix time. Is there any way to format that date into month, day and year?
>>> pkg query %n-%t
>>
>> Here's a Perl one-liner:
>>
>> 2019-07-12 17:28:52 dpchrist at cvs ~
>> $ pkg query %n-%t | perl -ne '/(.+)-(\d+)$/; ($d,$m,$y)=(localtime $2)[3,4,5];$y+=1900; printf "%-50s %4i-%02i-%02i\n", $1, $y, $m ,$d'
>> bash 2019-01-21
>> cvs 2019-01-21
>> gettext-runtime 2019-01-21
>> <snip>
>
> I tried to add a | sort -k 2, thinking that would sort the output by date, but while it changed the order of the output (no other number did), it wasn’t based on the date column. Not sure what it was based on.
>
> I also tried -k 2,4 and -k 2 -k 3
>
> I assume I am missing something bloody obvious.
There is no need for a pipeline and sort(1):
2019-07-13 13:16:07 dpchrist at cvs ~
$ pkg query %n-%t | perl -e
'while(<>){/(.+)-(\d+)$/;($d,$m,$y)=(localtime $2)[3,4,5];$h{sprintf
"%-50s",$1}=sprintf "%4i-%02i-%02i",$y+1900,$m,$d} print map
{$_,$h{$_},"\n"} sort {"$h{$a} $a" cmp "$h{$b} $b"} keys %h'
bash 2019-01-21
cvs 2019-01-21
gettext-runtime 2019-01-21
<snip>
p5-UNIVERSAL-require 2019-03-19
rename 2019-04-09
pkg 2019-06-12
David
More information about the freebsd-questions
mailing list