Overview
egrep is used to find lines containing specific patterns in text files. Unlike the standard grep, egrep natively supports Extended Regular Expressions (ERE), enabling more flexible and powerful pattern matching.
Key Features
- Native support for Extended Regular Expressions (ERE)
- Functionally identical to `grep -E`
- Control over search and output using various options
- Filtering output of other commands when used with pipes (|)
Common Options
Here are some of the most frequently used options with the egrep command.
Search Control
Output Format
Generated command:
Try combining the commands.
Description:
`egrep` Executes the command.
Combine the above options to virtually execute commands with AI.
Usage Examples
Here are various examples of how to use the egrep command.
Basic Extended Regular Expression Search
egrep 'apple|banana' fruits.txt
Searches for lines containing 'apple' or 'banana' in a file.
Case-Insensitive Search
egrep -i 'error' logfile.log
Searches for lines containing 'error' (case-insensitive) in a log file.
Output Lines Not Starting with a Comment (#)
egrep -v '^#' config.ini
Filters out commented lines from a configuration file to view actual settings.
Recursive Search in a Specific Directory
egrep -r 'function_name' ./src
Searches for 'function_name' in all files within the 'src' subdirectory of the current directory.
Search with Line Numbers
egrep -n 'keyword' document.txt
Searches for 'keyword' in a document file and outputs the line number along with the matching line.
Search for Specific Processes in Process List
ps aux | egrep 'apache|nginx'
Filters the output of `ps aux` to find processes related to 'apache' or 'nginx'.
Tips & Notes
Useful tips and points to consider when using egrep.
Relationship with grep -E
On most modern Linux systems, `egrep` is a symbolic link or alias to `grep -E`. Therefore, using `grep -E` is more common and recommended.
- `egrep` == `grep -E`
- Using `egrep` or `grep -E` is more convenient than standard `grep` for complex regular expressions.
Performance Considerations
When searching for fixed strings rather than regular expressions, using `fgrep` (or `grep -F`) can be more performant. `fgrep` does not have the overhead of parsing regular expressions.
- For fixed string searches: Use `fgrep` (or `grep -F`)
- For regular expression searches: Use `egrep` (or `grep -E`)
Regular Expression Escaping
In standard `grep`, metacharacters for extended regular expressions like `+`, `?`, `|`, and `()` must be escaped with a backslash (`\`). However, `egrep` allows you to use them directly without escaping.
- In `egrep`, use directly like `(a|b)+`
- In standard `grep`, escaping is required, e.g., `\(a\|b\)\+`