grep --color

The grep --color command is used to highlight the matching parts of the text that the grep command finds.
This makes it easier to visually identify the search results.

🎧


Here's the overview:

$ grep -i --color 'failed' /var/log/auth.log

This command searches for the word 'failed' in /var/log/auth.log and highlights the matched text in red, which is the default color.

Sep 26 05:49:51 SNUBmonkey sshd[2275734]: Failed password for invalid user ubnt from 116.132.42.170 port 43430 ssh2
Sep 26 05:49:58 SNUBmonkey sshd[2275824]: Failed password for invalid user ubnt from 36.138.132.109 port 52319 ssh2
Sep 26 05:52:02 SNUBmonkey sshd[2277433]: Failed password for invalid user ubnt from 90.137.97.230 port 34675 ssh2
Sep 26 05:52:12 SNUBmonkey sshd[2277548]: Failed password for invalid user ubnt from 122.140.193.23 port 38870 ssh2
Sep 26 05:56:15 SNUBmonkey sshd[2280678]: Failed password for invalid user config from 79.129.206.144 port 58082 ssh2
Sep 26 06:01:19 SNUBmonkey sshd[2284728]: Failed password for invalid user user from 103.35.169.154 port 45587 ssh2


Additional Options:

• --color=always: Always output color, even when piping or redirecting the output.
• --color=auto: Only use color when the output is to a terminal (default).
• --color=never: Never output color.


Change Color


By default, matches highlighted with the grep --color option appear in red.
To change the color of the highlighted matches in grep , you can use the GREP_COLORS environment variable. This variable allows you to customize how grep highlights matches, separators, and line numbers.

$ GREP_COLORS='mt=01;32' grep -i --color=always 'failed' /var/log/auth.log

In this example, 01;32 specifies bold green text for the matching pattern.

Sep 26 05:49:51 SNUBmonkey sshd[2275734]: Failed password for invalid user ubnt from 116.132.42.170 port 43430 ssh2
Sep 26 05:49:58 SNUBmonkey sshd[2275824]: Failed password for invalid user ubnt from 36.138.132.109 port 52319 ssh2
Sep 26 05:52:02 SNUBmonkey sshd[2277433]: Failed password for invalid user ubnt from 90.137.97.230 port 34675 ssh2
Sep 26 05:52:12 SNUBmonkey sshd[2277548]: Failed password for invalid user ubnt from 122.140.193.23 port 38870 ssh2
Sep 26 05:56:15 SNUBmonkey sshd[2280678]: Failed password for invalid user config from 79.129.206.144 port 58082 ssh2
Sep 26 06:01:19 SNUBmonkey sshd[2284728]: Failed password for invalid user user from 103.35.169.154 port 45587 ssh2

Breakdown of the GREP_COLORS Syntax:

mt stands for matched text.
01: Bold.
32: Green.

Common Color Codes:

Black: 30
Red: 31
Green: 32
Yellow: 33
Blue: 34
Magenta: 35
Cyan: 36
White: 37


Set it globally (optional)

You can also add the following line to your shell configuration file (~/.bashrc or ~/.zshrc) to always use the desired color as such:

export GREP_COLORS='mt=01;31'




Well, that's a wrap on how to make grep --color your colorful friend for highlighting matches! Keep grepping and stay colorful!

We hope you found these insights useful!