Hello Pádraig,
On 02/09/2015 05:49 AM, Pádraig Brady wrote:
On third thought, perhaps we should tweak the output from who to be more easily
processed?
It seems like small tweaks could improve things a lot, and would be a more
general solution.
Agreed.
though I don't know if the output of 'who' is commonly used with automated
parsing, and thus expected not to change?
The time field can already be sorted with `sort -b -k3,4` (we should remove the
locale variant)
This could be a bit problematic depending on the options used.
For example, with "-a", I get the following on my system:
====
$ ./src/who -a
system boot 2015-02-02 17:24
run-level 2 2015-02-02 17:24
LOGIN tty4 2015-02-02 17:24 1901 id=4
LOGIN tty5 2015-02-02 17:24 1905 id=5
LOGIN tty2 2015-02-02 17:24 1914 id=2
gordon - tty3 2015-02-06 16:46 old 12643
LOGIN tty6 2015-02-02 17:24 1919 id=6
gordon - tty1 2015-02-04 19:53 old 6103
gordon ? :0 2015-02-02 17:24 ? 4694 (:0)
gordon + pts/0 2015-02-02 17:28 . 5894 (:0)
gordon + pts/12 2015-02-02 17:28 old 5894 (:0)
gordon + pts/16 2015-02-05 10:49 00:04 5894 (:0)
pts/17 2015-02-04 20:53 24776 id=s/17 term=0
exit=0
pts/26 2015-02-06 22:08 0 id=/26 term=0
exit=0
pts/27 2015-02-04 17:03 0 id=/27 term=0
exit=0
====
So the third and fourth fields (determined by whitespace) are not always the
login time.
Also noticed that in POSIX locale, the time string must be "%b %e %H:%M" (in the example
above, the locale was en_US.UTF-8, and the time string was "%Y-%m-%d %H:%M") - so there's
another white space in POSIX locale.
But since my original intention was to simply find "logged in users sorted by
idleness",
I guess using this can be assumed to always work:
$ LC_ALL=C who -u | sort -b -k6,6
Thanks,
- Assaf