The Memory Bank

...for memory blanks

Site Tools


grep

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
grep [2025/05/01 23:45] – created kengrep [2026/01/16 03:37] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ===== Grep OR – Grep AND – Grep NOT – Match Multiple Patterns ===== ===== Grep OR – Grep AND – Grep NOT – Match Multiple Patterns =====
  
-The grep, egrep, sed and awk are the most common Linux command line tools for parsing files. +The grep, egrep, sed and awk are the most common Linux command line tools for parsing files.\\ 
- +From the following article you’ll learn how to match multiple patterns with the OR, AND, NOT operators, using grep, egrep, sed and awk commands from the Linux command line.\\
-From the following article you’ll learn how to match multiple patterns with the OR, AND, NOT operators, using grep, egrep, sed and awk commands from the Linux command line. +
 I’ll show the examples of how to find the lines, that match any of multiple patterns, how to print the lines of a file, that match each of provided patterns and how to find and print the lines, that do not match a pattern (negative matching). I’ll show the examples of how to find the lines, that match any of multiple patterns, how to print the lines of a file, that match each of provided patterns and how to find and print the lines, that do not match a pattern (negative matching).
  
-Cool Tip: Find and validate email addresses with grep command! The best regular expression for email addresses! Read more → +==== GREP OR: Match Any Of Multiple Patterns ====
-GREP OR: Match Any Of Multiple Patterns+
  
 Find all the lines of a file, that match any of provided patterns. Find all the lines of a file, that match any of provided patterns.
  
-=== Using grep and egrep commands: ===+**Using grep and egrep commands:**
  
 <code>$ grep "PATTERN1\|PATTERN2" FILE <code>$ grep "PATTERN1\|PATTERN2" FILE
 $ grep -E "PATTERN1|PATTERN2" FILE $ grep -E "PATTERN1|PATTERN2" FILE
 $ grep -e PATTERN1 -e PATTERN2 FILE $ grep -e PATTERN1 -e PATTERN2 FILE
-$ egrep "PATTERN1|PATTERN2" FILE</code>+$ egrep "PATTERN1|PATTERN2" FILE</code>\\ 
 +**Using awk command:**
  
-Using awk command: 
 <code> <code>
 $ awk '/PATTERN1|PATTERN2/' FILE $ awk '/PATTERN1|PATTERN2/' FILE
-</code> +</code>\\ 
-Using sed command: +**Using sed command:** 
-<code>+<code>\\
 $ sed -e '/PATTERN1/b' -e '/PATTERN2/b' -e d FILE $ sed -e '/PATTERN1/b' -e '/PATTERN2/b' -e d FILE
-</code>+</code>\\
 === GREP AND: Match Multiple Patterns === === GREP AND: Match Multiple Patterns ===
  
-It is also often required to grep a file for multiple patterns – when it is needed to find all the lines in a file, that contain not one, but several patterns. +It is also often required to grep a file for multiple patterns – when it is needed to find all the lines in a file, that contain not one, but several patterns.\\ 
- +Note, that you can both find the lines in a file that match multiple patterns in the exact order or in the any order.\\ 
-Note, that you can both find the lines in a file that match multiple patterns in the exact order or in the any order. +Use one of the following commands to find and print all the lines of a file, that match multiple patterns.\\ 
- +\\ 
-Use one of the following commands to find and print all the lines of a file, that match multiple patterns. +**Using grep command (exact order):**
- +
-=== Using grep command (exact order): ===+
 <code> <code>
 $ grep -E 'PATTERN1.*PATTERN2' FILE $ grep -E 'PATTERN1.*PATTERN2' FILE
-</code> +</code>\\ 
-Using grep command (any order): +**Using grep command (any order):** 
 +<code>
 $ grep -E 'PATTERN1.*PATTERN2|PATTERN2.*PATTERN1' FILE $ grep -E 'PATTERN1.*PATTERN2|PATTERN2.*PATTERN1' FILE
 $ grep 'PATTERN1' FILE | grep 'PATTERN2' $ grep 'PATTERN1' FILE | grep 'PATTERN2'
- +</code>\\ 
-Cool Tip: The server is out of memory? Check what processes are using all the RAM and SWAP! Bash one liner for the true Linux admins! Read more → +**Using awk command (exact order):** 
- +<code>
-Using awk command (exact order): +
 $ awk '/PATTERN1.*PATTERN2/' FILE $ awk '/PATTERN1.*PATTERN2/' FILE
- +</code> 
-Using awk command (any order): +**Using awk command (any order):** 
 +<code>
 $ awk '/PATTERN1/ && /PATTERN2/' FILE $ awk '/PATTERN1/ && /PATTERN2/' FILE
- +</code>\\ 
-Using sed command (exact order): +**Using sed command (exact order):** 
 +<code>
 $ sed '/PATTERN1.*PATTERN2/!d' FILE $ sed '/PATTERN1.*PATTERN2/!d' FILE
- +</code>\\ 
-Using sed command (any order): +**Using sed command (any order):** 
 +<code>
 $ sed '/PATTERN1/!d; /PATTERN2/!d' FILE $ sed '/PATTERN1/!d; /PATTERN2/!d' FILE
 +</code>
 +\\
 +==== GREP NOT: Negative Matching ====
  
-GREP NOT: Negative Matching +Find and print all the lines, that do not match a pattern.\\
- +
-Cool Tip: Find and validate IP addresses with grep command! The best regular expression for IP addresses! Read more → +
- +
-Find and print all the lines, that do not match a pattern. +
- +
-Using grep command:+
  
 +**Using grep command:**
 +<code>
 $ grep -v 'PATTERN1' FILE $ grep -v 'PATTERN1' FILE
- +</code> 
-Using awk command: +**Using awk command:** 
 +<code>
 $ awk '!/PATTERN1/' FILE $ awk '!/PATTERN1/' FILE
- +</code> 
-Using sed command: +**Using sed command:** 
 +<code>
 $ sed -n '/PATTERN1/!p' FILE $ sed -n '/PATTERN1/!p' FILE
 +</code>
grep.1746143137.txt.gz · Last modified: (external edit)