Bird
Raised Fist0
Linux CLIscripting~5 mins

sed (stream editor) basics in Linux CLI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is sed used for in Linux?

sed is a tool to find and change text in files or input streams automatically. It works like a robot that reads text line by line and edits it based on rules you give.

Click to reveal answer
beginner
How do you replace the first occurrence of 'apple' with 'orange' in each line using sed?

Use: sed 's/apple/orange/' filename. This changes only the first 'apple' in each line to 'orange'.

Click to reveal answer
intermediate
What does the -n option do in sed?

The -n option tells sed to not print anything by default. You then use the p command to print only the lines you want.

Click to reveal answer
beginner
Explain the command: sed '2d' filename

This command deletes the second line from the file output. It reads the file and skips printing line 2.

Click to reveal answer
intermediate
How can you save changes made by sed directly to the file?

Use the -i option: sed -i 's/old/new/g' filename. This edits the file in place without showing output on screen.

Click to reveal answer
What does the command sed 's/cat/dog/' file.txt do?
AReplaces the first 'cat' with 'dog' in each line
BDeletes all lines containing 'cat'
CPrints lines containing 'dog'
DReplaces all 'cat' with 'dog' in the file
Which option prevents sed from printing all lines by default?
A-n
B-e
C-i
D-p
How do you delete the 3rd line of a file using sed?
Ased 'delete 3' filename
Bsed 'd3' filename
Csed -n '3d' filename
Dsed '3d' filename
What does the g flag do in sed 's/old/new/g'?
ADeletes the line if match found
BChanges only the first match per line
CChanges all matches in each line
DPrints the line if match found
How do you edit a file directly with sed?
Ased -n 's/a/b/' file
Bsed -i 's/a/b/' file
Csed 's/a/b/' file > newfile
Dsed 's/a/b/' file -o
Describe how to use sed to replace text in a file and save the changes directly.
Think about the substitution syntax and how to apply changes to the file itself.
You got /3 concepts.
    Explain how sed processes input and how you can control what lines get printed.
    Consider how <code>sed</code> normally prints all lines and how to change that.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the sed command sed 's/cat/dog/' file.txt do?
      easy
      A. Deletes all lines containing 'cat' in file.txt
      B. Replaces the first occurrence of 'cat' with 'dog' on each line of file.txt
      C. Prints only lines containing 'dog' from file.txt
      D. Appends 'dog' at the end of each line containing 'cat' in file.txt

      Solution

      1. Step 1: Understand the substitution command

        The s/pattern/replacement/ syntax in sed replaces the first match of 'pattern' with 'replacement' on each line.
      2. Step 2: Apply to the given command

        The command replaces the first occurrence of 'cat' with 'dog' on every line of file.txt.
      3. Final Answer:

        Replaces the first occurrence of 'cat' with 'dog' on each line of file.txt -> Option B
      4. Quick Check:

        sed substitution = replace first match [OK]
      Hint: Remember: s/pattern/replacement/ changes first match per line [OK]
      Common Mistakes:
      • Thinking it deletes lines instead of substituting
      • Assuming it replaces all occurrences without 'g' flag
      • Confusing printing lines with substitution
      2. Which of the following is the correct syntax to delete all lines containing the word 'error' using sed?
      easy
      A. sed '/error/d' filename
      B. sed 'd/error/' filename
      C. sed 's/error/d/' filename
      D. sed 'delete /error/' filename

      Solution

      1. Step 1: Identify the delete command syntax in sed

        To delete lines matching a pattern, the syntax is sed '/pattern/d'.
      2. Step 2: Match the correct option

        sed '/error/d' filename uses sed '/error/d', which deletes lines containing 'error'. Other options have incorrect syntax.
      3. Final Answer:

        sed '/error/d' filename -> Option A
      4. Quick Check:

        Delete lines with pattern = /pattern/d [OK]
      Hint: Use '/pattern/d' to delete matching lines in sed [OK]
      Common Mistakes:
      • Placing 'd' before the pattern
      • Using substitution syntax instead of delete
      • Writing 'delete' instead of 'd'
      3. What is the output of the command echo 'apple banana apple' | sed 's/apple/orange/g'?
      medium
      A. orange banana orange
      B. orange banana apple
      C. apple banana apple
      D. apple banana orange

      Solution

      1. Step 1: Understand the 'g' flag in substitution

        The 'g' flag means replace all occurrences of the pattern on each line, not just the first.
      2. Step 2: Apply substitution to the input string

        All 'apple' words are replaced by 'orange', so 'apple banana apple' becomes 'orange banana orange'.
      3. Final Answer:

        orange banana orange -> Option A
      4. Quick Check:

        Substitute all matches with 'g' flag = replaced all [OK]
      Hint: Add 'g' to replace all matches, not just first [OK]
      Common Mistakes:
      • Forgetting the 'g' flag replaces only first occurrence
      • Confusing output with original input
      • Misreading the pipe input
      4. Identify the error in this sed command: sed 's/hello/goodbye' file.txt
      medium
      A. No error; command is correct
      B. Incorrect command; 's' cannot be used with text files
      C. The pattern 'hello' is invalid
      D. Missing delimiter after replacement text

      Solution

      1. Step 1: Check the substitution syntax

        The substitution command requires delimiters: s/pattern/replacement/. The final '/' is missing here.
      2. Step 2: Identify the missing delimiter

        The command ends with 's/hello/goodbye' missing the closing '/' delimiter after 'goodbye'.
      3. Final Answer:

        Missing delimiter after replacement text -> Option D
      4. Quick Check:

        Substitution needs closing '/' delimiter [OK]
      Hint: Check that substitution ends with '/' delimiter [OK]
      Common Mistakes:
      • Omitting the last '/' in substitution
      • Assuming 's' can't be used on files
      • Thinking pattern must be a regex error
      5. You want to replace the word 'cat' with 'dog' only on lines 2 to 4 in a file named pets.txt. Which sed command achieves this?
      hard
      A. sed 's/cat/dog/ 2,4' pets.txt
      B. sed '/2,4 s/cat/dog/' pets.txt
      C. sed '2,4s/cat/dog/' pets.txt
      D. sed 's/cat/dog/ 2-4' pets.txt

      Solution

      1. Step 1: Understand address range in sed

        To apply a command only on specific lines, use start,endcommand syntax, e.g., 2,4s/pattern/replacement/.
      2. Step 2: Match the correct syntax

        sed '2,4s/cat/dog/' pets.txt correctly uses 2,4s/cat/dog/ to replace 'cat' with 'dog' on lines 2 to 4.
      3. Final Answer:

        sed '2,4s/cat/dog/' pets.txt -> Option C
      4. Quick Check:

        Use line range before command to limit sed action [OK]
      Hint: Use 'start,end' before 's' to limit substitution lines [OK]
      Common Mistakes:
      • Placing line numbers after substitution command
      • Using incorrect range syntax like '2-4'
      • Adding slashes around line numbers
      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