Bird
Raised Fist0
Bash Scriptingscripting~5 mins

grep in scripts in Bash Scripting - Cheat Sheet & Quick Revision

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

grep searches for lines in a file or input that match a given pattern. It helps find specific text quickly.

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

Use the command: grep 'apple' fruits.txt. It will show all lines containing "apple".

Click to reveal answer
beginner
What does the -i option do in grep?

The -i option makes the search case-insensitive. It finds matches regardless of uppercase or lowercase letters.

Click to reveal answer
intermediate
How can grep be used in a script to check if a pattern exists and then run a command?

You can use grep with an if statement. For example:
if grep -q 'pattern' file.txt; then echo 'Found'; fi
This runs the echo only if the pattern is found.

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

The -q option makes grep run quietly. It does not print output but sets the exit status to indicate if a match was found.

Click to reveal answer
What will grep 'dog' pets.txt do?
AShow lines containing 'dog' in pets.txt
BDelete lines containing 'dog' in pets.txt
CReplace 'dog' with 'cat' in pets.txt
DCount the number of lines in pets.txt
Which grep option makes the search ignore case?
A-v
B-i
C-q
D-r
What does the -q option do in grep?
APrint matching lines
BSearch recursively
CRun quietly without output
DInvert match
How can you use grep in a script to run a command only if a pattern is found?
AUse <code>grep -v</code>
BUse <code>grep -i</code>
CUse <code>grep -r</code>
DUse <code>if grep -q 'pattern' file; then ... fi</code>
What will grep -v 'cat' animals.txt do?
AShow lines not containing 'cat'
BReplace 'cat' with another word
CCount lines with 'cat'
DShow lines containing 'cat'
Explain how you would use grep in a bash script to check if a file contains a specific word and then print a message.
Think about using <code>grep -q</code> inside an <code>if</code> condition.
You got /6 concepts.
    Describe the difference between using grep with and without the -i option.
    Consider how 'Apple' and 'apple' are treated.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the grep command do in a bash script?
      easy
      A. Searches for lines matching a pattern in files or input
      B. Deletes files matching a pattern
      C. Creates new files with matching names
      D. Changes file permissions based on a pattern

      Solution

      1. Step 1: Understand grep's purpose

        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 actions unrelated to searching text, so they are incorrect.
      3. Final Answer:

        Searches for lines matching a pattern in files or input -> Option A
      4. Quick Check:

        grep = search text lines [OK]
      Hint: grep finds text patterns in files or input quickly [OK]
      Common Mistakes:
      • Thinking grep deletes or modifies files
      • Confusing grep with commands like rm or chmod
      • Assuming grep creates files
      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 -f error log.txt
      B. grep error log.txt
      C. grep log.txt error
      D. grep -c log.txt error

      Solution

      1. Step 1: Identify grep syntax

        The correct syntax is grep [pattern] [file]. So, searching for "error" in "log.txt" is grep error log.txt.
      2. Step 2: Check 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 wrong flags.
      3. Final Answer:

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

        grep pattern file = correct syntax [OK]
      Hint: Remember: grep pattern filename [OK]
      Common Mistakes:
      • Swapping pattern and filename order
      • Using -f flag incorrectly
      • Confusing -c flag usage
      3. What will be the output of this script snippet?
      echo -e "apple\nbanana\nApple" | grep -i apple
      medium
      A. apple
      B. No output
      C. apple\nApple
      D. Apple

      Solution

      1. Step 1: Understand the input

        The input lines are "apple", "banana", and "Apple".
      2. Step 2: Apply grep with -i option

        The -i option makes grep case-insensitive, so it matches both "apple" and "Apple" but not "banana".
      3. Final Answer:

        apple\nApple -> Option C
      4. Quick Check:

        grep -i matches case-insensitive lines [OK]
      Hint: Use -i to ignore case when searching [OK]
      Common Mistakes:
      • Ignoring case sensitivity of grep
      • Expecting only lowercase matches
      • Assuming grep outputs only one match
      4. Identify the error in this script snippet:
      if grep "error" logfile.txt
      then
        echo "Error found"
      fi
      medium
      A. Missing semicolon or newline before then
      B. grep command syntax is wrong
      C. echo command should be outside if block
      D. fi is missing

      Solution

      1. Step 1: Check if statement syntax

        In bash, the if condition must end with a semicolon or newline before then. Here, then is on a new line and the previous line ends properly, so syntax is correct.
      2. Step 2: Confirm other parts

        grep syntax is correct, echo is correctly inside if, and fi is present.
      3. Final Answer:

        No error in the script snippet -> Option A
      4. Quick Check:

        if condition syntax is correct as given [OK]
      Hint: Put ; or newline before then in if statements [OK]
      Common Mistakes:
      • Writing if and then on same line without semicolon
      • Misplacing fi or echo commands
      • Confusing grep syntax with if syntax
      5. You want to count how many lines in data.txt contain the word "success" ignoring case, and store the number in a variable count. Which script snippet correctly does this?
      hard
      A. count=$(grep -i success -c data.txt)
      B. count=$(grep -c success -i data.txt)
      C. count=$(grep success -i -c data.txt)
      D. count=$(grep -ci success data.txt)

      Solution

      1. Step 1: Understand grep options

        The -c option counts matching lines, and -i ignores case. Both can be combined as -ci.
      2. Step 2: Check option order and syntax

        Options A, B, and D have options separated or misplaced. count=$(grep -ci success data.txt) correctly combines -c and -i before the pattern and filename.
      3. Final Answer:

        count=$(grep -ci success data.txt) -> Option D
      4. Quick Check:

        Use combined options -ci for count and ignore case [OK]
      Hint: Combine options like -ci for count and ignore case [OK]
      Common Mistakes:
      • Separating options incorrectly
      • Placing options after filename
      • Not combining -c and -i properly
      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