3 ms·
I am confused. What's wrong with `wc -l < file | ... | ...`? I know `< file wc -l | ... | ...` is identical because the redirection is done before the command
by herpderperator 7y ago
I am confused. What's wrong with `wc -l < file | ... | ...`?
I know `< file wc -l | ... | ...` is identical because the redirection is done before the command is executed, but what does putting it in front help with?
- emj 7y agoYou can easily change that first command with muscle memory. That's why I use cat $file| but I guess <$file would work too.
- emmelaich 7y agoAs per James Taylor's comment above, using cat means you can easily replace it with head e.g. for testing. And not change anything else in the pipeline.
- squiggleblaz 7y agoBecause I feel the other answers, though correct, are entirely missing out on clarity: The first iteration looks like this: <file head -n10 | grep foo | tr baz qux The second iteration looks like this: <file gzcat | head -n10 | grep foo | tr baz qux It makes the change much easier, since the first thing written is the first thing that happens. In `gzcat < file`, the logical first step - reading and streaming file - is now the physical second step. Like a German sentence, whenever you want to prepend the file, you have to maintain an item in second position.