Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Comprehensive List of Grep Commands with Descriptions
#1
Comprehensive List of Grep Commands with Descriptions

**grep** (Global Regular Expression Print) is a command-line utility used for searching and filtering text in files or standard input using regular expressions. Below is a detailed list of grep commands, along with descriptions and examples.



1. Basic String Search
Description: Searches for a specific string in a file and prints the matching lines.
Code:
grep "search_string" [file]
Example: To search for the string "error" in a log file:
Code:
grep "error" /var/log/syslog

2. Case-Insensitive Search
Description: Performs a case-insensitive search by ignoring the case of the search string.
Code:
grep -i "search_string" [file]
Example: To search for "error" or "Error" or "ERROR" in a log file:
Code:
grep -i "error" /var/log/syslog

3. Search Recursively in Directories
Description: Recursively searches through all files in a directory and its subdirectories.
Code:
grep -r "search_string" [directory]
Example: To search for "error" in all files under `/var/log`:
Code:
grep -r "error" /var/log

4. Display Line Numbers with Matches
Description: Displays the line numbers of the matching lines in the output.
Code:
grep -n "search_string" [file]
Example: To search for "error" in a log file and display line numbers:
Code:
grep -n "error" /var/log/syslog

5. Invert Match (Show Non-Matching Lines)
Description: Displays all lines that do not match the search string.
Code:
grep -v "search_string" [file]
Example: To display all lines in a log file that do not contain "error":
Code:
grep -v "error" /var/log/syslog

6. Display Only Matching Parts of Lines
Description: Displays only the parts of lines that match the search string.
Code:
grep -o "search_string" [file]
Example: To display only the word "error" each time it appears in a log file:
Code:
grep -o "error" /var/log/syslog

7. Count the Number of Matches
Description: Counts and displays the number of lines that match the search string.
Code:
grep -c "search_string" [file]
Example: To count how many times "error" appears in a log file:
Code:
grep -c "error" /var/log/syslog

8. Use Extended Regular Expressions (ERE)
Description: Enables extended regular expressions for more advanced pattern matching.
Code:
grep -E "regex_pattern" [file]
Example: To search for lines that contain either "error" or "warning":
Code:
grep -E "error|warning" /var/log/syslog

9. Search for Whole Words Only
Description: Matches only whole words instead of substrings.
Code:
grep -w "search_string" [file]
Example: To search for the whole word "error" but not "errors":
Code:
grep -w "error" /var/log/syslog

10. Show Context Lines (Before and After Matches)
Description: Displays a specified number of lines before and/or after each matching line.
Code:
grep -C [num] "search_string" [file]
grep -B [num] "search_string" [file]
grep -A [num] "search_string" [file]
Example: To show 3 lines before and after each match of "error":
Code:
grep -C 3 "error" /var/log/syslog

11. Suppress Output (Useful for Exit Status Only)
Description: Suppresses all output, useful when you only need to know if a match exists (exit status).
Code:
grep -q "search_string" [file]
Example: To check if "error" exists in a log file without showing output:
Code:
grep -q "error" /var/log/syslog

12. Print Filename with Matches
Description: Displays the name of the file where matches are found, useful when searching multiple files.
Code:
grep -l "search_string" [files]
Example: To find which files in `/var/log` contain "error":
Code:
grep -l "error" /var/log/*

13. Search for Files That Do Not Contain a String
Description: Displays the names of files that do not contain the search string.
Code:
grep -L "search_string" [files]
Example: To find which files in `/var/log` do not contain "error":
Code:
grep -L "error" /var/log/*

14. Search Compressed Files (Using zgrep)
Description: Searches within compressed files, typically using `zgrep` which behaves like `grep` but works with gzip-compressed files.
Code:
zgrep "search_string" [compressed_file]
Example: To search for "error" in a gzip-compressed log file:
Code:
zgrep "error" /var/log/syslog.gz

15. Highlight Matches in Color
Description: Highlights matching strings in color, making them easier to spot in the output.
Code:
grep --color=auto "search_string" [file]
Example: To search for "error" and highlight matches:
Code:
grep --color=auto "error" /var/log/syslog

16. Exclude Specific Files from Search
Description: Excludes certain files from being searched, useful when searching in directories.
Code:
grep --exclude=[file_pattern] "search_string" [directory]
Example: To search for "error" in all files under `/var/log` except `.log` files:
Code:
grep --exclude=*.log "error" /var/log/*

17. Exclude Directories from Recursive Search
Description: Excludes specific directories from being searched when performing a recursive search.
Code:
grep --exclude-dir=[dir_pattern] -r "search_string" [directory]
Example: To search for "error" in `/var/log` but exclude `archive` directory:
Code:
grep --exclude-dir=archive -r "error" /var/log

18. Limit the Number of Matches
Description: Stops searching after a specified number of matches are found.
Code:
grep -m [num] "search_string" [file]
Example: To stop searching after finding the first 5 matches for "error":
Code:
grep -m 5 "error" /var/log/syslog

19. Display Non-Matching Files (In Binary Mode)
Description: Displays files that do not contain matches, useful for binary files.
Code:
grep -L -I "search_string" [files]
Example: To find binary files in `/bin` that do not contain "magic":
Code:
grep -L -I "magic" /bin/*

20. Perform a Binary Search
Description: Searches for matches in binary files and displays them.
Code:
grep -a "search_string" [binary_file]
Example: To search for "magic" in a binary file:
Code:
grep -a "magic" /bin/somebinaryfile



Conclusion

The **grep** command is a powerful tool for searching and filtering text within files and streams, making it an essential utility in the Unix/Linux command-line toolkit. By mastering these commands, you can efficiently search, analyze, and process large amounts of text data.

Happy Searching!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)