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