Skip to content
Vidar Holen edited this page Jan 21, 2015 · 6 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.

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally