Grep is an incredibly powerful command-line tool for searching text using patterns or regular expressions. Fast, lightweight, and convenient — grep is an essential companion for sysadmins, developers, or anyone working with text.
What is Grep?
grep
stands for Global Regular Expression Print. It scans through file content (or input) and prints lines that match the given pattern.
1
| grep "pattern_to_find" file.txt
|
Grep supports both basic and extended regular expressions, allowing you to create complex patterns for precise data retrieval.
Basic Usage
- Prints lines containing “error” in
logfile.txt
.
1
| grep -i error logfile.txt
|
1
| grep -n error logfile.txt
|
- Displays line numbers with matches.
Using Regular Expressions
1
| grep "^ERROR" logfile.txt
|
- Lines starting with
ERROR
.
1
| grep "[0-9]\{3\}-[0-9]\{2\}-[0-9]\{4\}" data.txt
|
- Matches Social Security Number (SSN) patterns like
123-45-6789
.
1
| grep -E "dog|cat" animals.txt
|
- Use
-E
for extended regex, e.g., lines containing “dog” or “cat”.
Recursive Search
- Find all lines with
TODO
from the current and subdirectories.
1
| grep -r --include="*.py" "import" .
|
- Only search within
.py
files.
Highlight Matches
1
| grep --color=auto pattern file.txt
|
- Highlights matched patterns — useful when viewing logs or long outputs.
Combine with Pipes
- Find running Java processes.
- Search kernel messages related to USB.
Summary
grep
may seem simple, but it becomes incredibly powerful once you tap into its full potential. With regex, you can filter logs, scan data, or debug thousands of lines of code efficiently.