Bird
Raised Fist0
Linux CLIscripting~5 mins

grep (search text patterns) in Linux CLI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the grep command do in Linux?

grep searches for text patterns in files or input and shows the matching lines.

Click to reveal answer
beginner
How do you search for the word apple in a file named fruits.txt using grep?

Use grep apple fruits.txt. This shows all lines containing apple in the file.

Click to reveal answer
beginner
What option do you add to grep to ignore case when searching?

Use -i option. For example, grep -i apple fruits.txt finds apple, Apple, or APPLE.

Click to reveal answer
intermediate
How can you count the number of matching lines with grep?

Use the -c option. For example, grep -c apple fruits.txt shows how many lines contain apple.

Click to reveal answer
intermediate
What does the -r option do in grep?

-r makes grep search recursively inside all files in a directory and its subdirectories.

Click to reveal answer
Which command finds lines containing 'dog' in the file 'pets.txt'?
Agrep -r dog
Bgrep pets.txt dog
Cgrep dog pets.txt
Dgrep -c dog pets.txt
How do you make grep ignore uppercase or lowercase differences?
A-i
B-c
C-v
D-r
What does grep -c error logfile.txt do?
ACounts lines with 'error'
BShows lines with 'error'
CSearches recursively for 'error'
DIgnores lines with 'error'
Which option lets grep search inside all files in folders and subfolders?
A-i
B-r
C-c
D-v
What does grep -v apple fruits.txt do?
AShows lines with 'apple'
BSearches recursively for 'apple'
CCounts lines with 'apple'
DShows lines without 'apple'
Explain how to use grep to find a word in a file and ignore case differences.
Think about the option that ignores uppercase and lowercase.
You got /4 concepts.
    Describe how to count the number of lines that match a pattern using grep.
    Look for the option that counts matches.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does the grep command do in Linux?
      easy
      A. Searches text for lines matching a pattern
      B. Deletes files matching a pattern
      C. Copies files to another directory
      D. Lists all files in a directory

      Solution

      1. Step 1: Understand the purpose of grep

        The grep command is used to search text for lines that match a given pattern.
      2. Step 2: Compare options

        Options B, C, and D describe other commands like rm, cp, and ls, not grep.
      3. Final Answer:

        Searches text for lines matching a pattern -> Option A
      4. Quick Check:

        grep = search text lines [OK]
      Hint: grep finds lines with your pattern in text [OK]
      Common Mistakes:
      • Confusing grep with file commands like rm or cp
      • Thinking grep modifies files instead of searching
      • Assuming grep lists files instead of searching content
      2. Which of the following is the correct syntax to search for the word error in a file named log.txt using grep?
      easy
      A. grep log.txt error
      B. grep -f error log.txt
      C. grep error log.txt
      D. grep -e log.txt error

      Solution

      1. Step 1: Recall grep syntax

        The basic syntax is grep [pattern] [file]. So to search for 'error' in 'log.txt', use grep error log.txt.
      2. Step 2: Analyze other options

        grep -f error log.txt uses -f which expects a file of patterns, not a pattern string. Options C and D have arguments reversed or incorrect flags.
      3. Final Answer:

        grep error log.txt -> Option C
      4. Quick Check:

        grep pattern file = grep error log.txt [OK]
      Hint: Use grep pattern filename order to avoid errors [OK]
      Common Mistakes:
      • Swapping pattern and filename positions
      • Using -f flag incorrectly for pattern string
      • Confusing -e flag usage
      3. Given a file data.txt with the following content:
      apple
      banana
      Apple
      BANANA
      apple pie
      banana split

      What is the output of the command grep -i 'apple' data.txt?
      medium
      A. apple apple pie
      B. Apple BANANA banana split
      C. apple pie banana split
      D. apple Apple apple pie

      Solution

      1. Step 1: Understand -i option

        The -i option makes grep case-insensitive, so it matches 'apple' and 'Apple'.
      2. Step 2: Identify matching lines

        Lines containing 'apple' ignoring case are: 'apple', 'Apple', and 'apple pie'.
      3. Final Answer:

        apple Apple apple pie -> Option D
      4. Quick Check:

        grep -i matches apple and Apple [OK]
      Hint: Use -i to ignore case when searching text [OK]
      Common Mistakes:
      • Ignoring case sensitivity without -i
      • Missing lines with partial matches like 'apple pie'
      • Confusing output order
      4. You run the command grep -c 'fail' report.txt but it returns 0 even though you know the file contains the word 'fail'. What is the most likely reason?
      medium
      A. The file report.txt is empty
      B. The word 'fail' is in uppercase like 'FAIL' and grep is case-sensitive by default
      C. The grep command syntax is incorrect
      D. The file report.txt does not exist

      Solution

      1. Step 1: Understand grep -c behavior

        The -c option counts matching lines. If it returns 0, no exact matches were found.
      2. Step 2: Consider case sensitivity

        By default, grep is case-sensitive. If the file has 'FAIL' but you search 'fail', it won't match.
      3. Final Answer:

        The word 'fail' is in uppercase like 'FAIL' and grep is case-sensitive by default -> Option B
      4. Quick Check:

        grep is case-sensitive unless -i used [OK]
      Hint: Use -i to ignore case if matches return zero [OK]
      Common Mistakes:
      • Assuming grep ignores case by default
      • Not checking file content carefully
      • Mistaking syntax errors for no matches
      5. You want to find how many lines in server.log contain the word timeout ignoring case, and display only the count. Which command should you use?
      hard
      A. grep -i -c timeout server.log
      B. grep -i timeout server.log
      C. grep timeout -i -c server.log
      D. grep -c timeout server.log

      Solution

      1. Step 1: Identify options needed

        You need to ignore case (-i) and count matching lines (-c).
      2. Step 2: Check correct option order

        Options can be combined as -i -c or -c -i. grep -i -c timeout server.log uses both correctly before pattern and file.
      3. Step 3: Analyze other options

        grep -c timeout server.log lacks case insensitivity. grep -i timeout server.log shows matches but not count. grep timeout -i -c server.log has incorrect argument order (pattern before options).
      4. Final Answer:

        grep -i -c timeout server.log -> Option A
      5. Quick Check:

        Use -i and -c together for case-insensitive count [OK]
      Hint: Combine -i and -c to count ignoring case [OK]
      Common Mistakes:
      • Omitting -i for case-insensitive search
      • Using pattern before options causing errors
      • Expecting output lines instead of count
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard