grep: retain colors when piping

By default grep -color is not producing color symbols if it detects that the output is not a terminal.

grep -color=auto is doing the same, that is not producing color symbols if it detects that the output is not a terminal.

The solution is to use “grep -color=always“ in the place that need it.

Do not put it in an alias of grep as it would break some code somewhere else. Color symbols are strings like “ESC[35m” and they will be inserted in the text.

Recursive grep FTW

In case you’re trying to search recursively for a specific file type and data mask, grep -r is not enough to bring the desired result.
You’ll have to use –include ‘type’ and then, even if the directory does not contain any of the given filetype in root, it’s still working.

Example;

grep -r --include '*.extension' 'Text to match' directory
grep -r --include '*.cpp' 'Audio' .