Mike Wayne wrote on 2024-04-12 15:55:

Not too helpful.

    -f specifies the lastlogin FILE to use, not fields

Ugh, confidently wrong.


    As mentioned, I'm trying to use --libxo text, not xml

That's my dumb mistake.


Looking to get lastlogin to print a single line:
    wayne last login: Fri Apr 12 15:06:16 2024 from 192.168.63.146


I'm guessing I need the printf equivalent for libxo but it appears
not to be documented anywhere.
I think JSON should do it via `jq`.


printf "%s last login %s from %s\n" $(lastlogin --libxo json | jq -r '.user,.login-time,.from')


I don't have any BSD system to try this on, but something like that ought to work.


Example:

└─» $ printf "%s %s %s\n" $(echo -n '{"user": "Wayne", "from": "192.168.63.146", "login_time": "today"}' | jq -r '.user, .login_time, .from')
Wayne today 192.168.63.146


A couple things to watch for: JSON / jq won't like a key with a hyphen, such as login-time. I'd assume / hope that libxo would do the transformation required for proper JSON.


Also, IFS might need tweaking as the date containing spaces will get parsed into separate printf string placeholders.

Or some `sed` transforms.


rb


_______________________________________________
Semibug mailing list
Semibug@lists.nycbug.org
https://lists.nycbug.org:8443/mailman/listinfo/semibug

Reply via email to