grep
usage error involves piping the output of cat
to grep
to search the contents of a single file. This is absolutely unnecessary and a waste of time, because tools such as grep
take file names as arguments. You simply do not need to use cat
in this situation at all, as in the following example:Listing 1. Example of good and bad habit #10: Using grep with and without
ca
~ $ time cat tmp/a/longfile.txt | grep and 2811 real 0m0.015s user 0m0.003s sys 0m0.013s ~ $ time grep and tmp/a/longfile.txt 2811 real 0m0.010s user 0m0.006s sys 0m0.004s ~ $ |
This mistake applies to many tools. Because most tools take standard input as an argument using a hyphen (-), even the argument for using
cat
to intersperse multiple files with stdin
is often not valid. It is really only necessary to concatenate first before a pipe when you use cat
with one of its several filtering options.
No comments:
Post a Comment