On 14 August 2013 13:07, Chris Angelico <ros...@gmail.com> wrote: > On Wed, Aug 14, 2013 at 7:59 AM, Joshua Landau <jos...@landau.ws> wrote: >> >> What's wrong with cat? Sure it's superfluous but what makes it *bad*? >> Personally I often prefer the pipe "cat x | y" form to "x < y"... or >> "< y x". > > What's the use of it, in that situation? Why not simply use > redirection? (Though you have the letters backward; "cat y | x" would > be the equivalent of your others. Typo, I assume.) You're forking a > process that achieves nothing, if your cat has just one argument. > > Of course, there ARE many good uses for cat. If you give it multiple > arguments, or if you have arguments that modify the output on the way > through (eg "cat -n"), then it's not the same as redirection. And some > programs behave differently if stdout is a tty, so the quickest way to > get the porcelain version of something is to append "|cat" to the > command. Or maybe you need to retrieve something that only root can > read, so you use "sudo cat /x/y/z|somescript". But if you could spell > it "x < y", then why not do so?
Because "cat y | x" often reads nicer. It's the whole "input -> function -> function -> ... -> output" thing. I especially hate "y < input > output" which reads awfully not matter where you chuck the spaces. "cat input | y > output" however, is acceptable. Honestly I do think Python would do well to get a pipe operator, because in some circumstances it's just cleaner. -- http://mail.python.org/mailman/listinfo/python-list