You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
koalaman edited this page Sep 2, 2015
·
7 revisions
Consider using grep -c instead of grep|wc.
Problematic code:
grep foo | wc -l
Correct code:
grep -c foo
Rationale:
This is purely a stylistic issue. grep can count lines without piping to wc.
Note that in many cases, this number is only used to see whether there are matches (i.e. > 0). In these cases, it's better and more efficient to use grep -q and check its exit status:
if grep -q pattern file
then
echo "The file contains the pattern"
fi
Exceptions
If you e.g. want to count characters instead of lines, and you actually care about the number and not just whether it's greater than 0.