And note the difficulty you have in the Solaris VS GNU utils? As I pointed out above, been there, been burned by that.
Yes, real admins and programmers are supposed to keep track of the many variations of arguments in the many implementations of the utils, both BSD vs AT&T, and then the individual computer manufacturer variations as well. Not me, and not anyone I've ever met. Who is this mythical person that can read and write shell scripts across the Unix variations? Sure, we each have the common ones, such as "ps -ef vs ps aux", but move into the line spoolers, and you're screwed unless you spend your time with nothing else.
Also, unix utils have internal limitations that I often hit. They are not meant to deal with my data (yes, pure text, but often too damn big), and puke (hopefully), or sometimes die silently, having written a short file (sort comes to mind, and in this case, yes, I knew to set the work space area.) I pulled the source for a bunch of the utils, and did an occasional hack years ago to make them work, but I hate working on other people's C code, escpecially filled with unrolled loops (lots of gotos).
And when I'm scripting a pipeline, checking the error return of the individual programs is a pain in the ass.
So, I'll lean to a Perl script that leaves lots of stats information in a log. I even have them email me on failure.