pkg query timestamp format
freebsd at edvax.de
Sat Jul 13 18:27:41 UTC 2019
On Sat, 13 Jul 2019 03:31:17 -0600, @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.
In the formatting rule of the perl printf command, put a
delimiter, for example "/": "%-50s/%4i-%02i-%02i\n", then
use "| sort -t '/' +1" or "| sort -g -t '/' +1". ISO dates
are sortable by definition. This should sort by the _2nd_
column with the defined delimiter.
Or, probably much easier, change the printf command to
create output as "<date> <package>" instead of the example
providing "<package> <date>", and just send this to "| sort".
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions