grep prints lines matching a pattern. Default basic regex differs from grep -E extended regex; grep -F treats the pattern as fixed text—best for literals with symbols. Exit code 0 means matches found, 1 means none, 2 signals errors—useful in scripts. -n shows line numbers, -C adds context, -r recurses directories. Set LC_ALL=C when you need ASCII-oriented speed and predictable ranges.
| Flag | Effect | When |
|---|---|---|
| -i | Case-insensitive | Logs with mixed casing |
| -v | Invert match | Filter noisy lines out |
| --color | Highlight hits | Interactive debugging |