UPDATE- as thundergnat correctly points out, the code doesn't work as first intended, at least not without some modification.
Technically it's *possible* that usernames can be completely numeric, but that's outright abusive--borderline illegal, and definitely prone to all kinds of problems.
If I we were dealing with "abusive" uid's, it wouldn't be too hard to add a neg look-behind assertion.
Now, for the meat and potatoes... I did run into some small typos in your code, but after correcting them, it worked. *slow and dramatic golf clap*. I had a hunch it could be done with regexes!! I've said it before, and I'll say it again... you have a dark gift my friend (sarcasm).
[user@host]$ perl -e 'print reverse sort{/(:\d+:))/<=>/(:\d+:/)}<>' /e +tc/passwd Unmatched ) in regex; marked by <-- HERE in m/(:\d+:)) <-- HERE / at - +e line 1. [user@host]$ perl -e 'print reverse sort{/(:\d+:)/<=>/(:\d+:/)}<>' /et +c/passwd Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE :\d+:/ at -e +line 1. [user@host]$ perl -e 'print reverse sort{/(:\d+:)/<=>/(:\d+:)/}<>' /et +c/passwd
...and AWESOMENESS HAPPENS ALMOST HAPPENED!
Read through the rest of the thread for the reason why this awesome snippet didn't quite work as intended...
In reply to Re^2: Golf: reverse sort /etc/passwd by UID
by Tommy
in thread Golf: reverse sort /etc/passwd by UID
by Tommy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |