3 ms·
I prefer the trivial cat, because the < redirect puts the source in the middle of the pipe. cat foo.txt | bar | blah > out.log vs. bar < foo.txt | blah >
by samatman 2y ago
I prefer the trivial cat, because the < redirect puts the source in the middle of the pipe.
cat foo.txt | bar | blah > out.log
vs.
bar < foo.txt | blah > out.log
It looks more like what it is. Also, with cat you can add another file or use a glob, that's come in handy more than once.
Furthermore, it means the first command isn't special, if I decide I want something else as the first command I just add it. Pure... concatenation. heh.
It's useful to know both ways, I suppose. But "don't use trivial cat" is just one of those self-perpetuating doctrines, there's no actual reason not to do things that way if you want.
- delamon 2y agoYou can do it like this: < foo.txt bar | blah > out.log
- samatman 2y agoHey, TIL. I like that more, in a way, and less, in a way. The angle bracket is pointing off into nothing but throws `foo.txt` into `bar` anyway, so the control flow seems more messed up than in `bar < foo.txt`. On the other hand it's structurally a bit more useful, because I can insert a different first stage very easily. But I still can't add a filename or change it to a glob, so cat is still more flexible. So I'm going to stick to my trivial-catting ways, but thanks for the head's up.