📖 Scenario: You have a text file with a list of fruits and their quantities. You want to practice using sed to edit this file's content without opening a text editor.
🎯 Goal: Learn how to use sed commands to replace text, delete lines, and print specific lines from a file.
📋 What You'll Learn
Use sed commands to modify text
Replace specific words in the file
Delete a line containing a certain word
Print only a specific line from the file
💡 Why This Matters
🌍 Real World
Editing configuration files or logs quickly without opening an editor is common in system administration and automation.
💼 Career
Knowing sed helps automate text processing tasks, saving time and reducing errors in many IT and development roles.
Progress0 / 4 steps
1
Create the initial text file
Create a file named fruits.txt with these exact lines: apple 10 banana 5 cherry 20 date 7 elderberry 3
Linux CLI
Hint
Use echo -e with newline characters \n and redirect output to fruits.txt.
2
Set the word to replace
Create a variable called old_word and set it to banana. Create another variable called new_word and set it to blueberry.
Linux CLI
Hint
Use simple variable assignment like old_word=banana.
3
Replace the word using sed
Use sed with the s command to replace all occurrences of $old_word with $new_word in fruits.txt and save the output to a new file called fruits_updated.txt.
Linux CLI
Hint
Use sed "s/$old_word/$new_word/g" fruits.txt > fruits_updated.txt to replace all occurrences.
4
Print the updated file content
Use cat to display the contents of fruits_updated.txt.
Linux CLI
Hint
Use cat fruits_updated.txt to see the updated file.
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
Step 1: Understand the substitution command
The s/pattern/replacement/ syntax in sed replaces the first match of 'pattern' with 'replacement' on each line.
Step 2: Apply to the given command
The command replaces the first occurrence of 'cat' with 'dog' on every line of file.txt.
Final Answer:
Replaces the first occurrence of 'cat' with 'dog' on each line of file.txt -> Option B
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
Step 1: Identify the delete command syntax in sed
To delete lines matching a pattern, the syntax is sed '/pattern/d'.
Step 2: Match the correct option
sed '/error/d' filename uses sed '/error/d', which deletes lines containing 'error'. Other options have incorrect syntax.
Final Answer:
sed '/error/d' filename -> Option A
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
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.
Step 2: Apply substitution to the input string
All 'apple' words are replaced by 'orange', so 'apple banana apple' becomes 'orange banana orange'.
Final Answer:
orange banana orange -> Option A
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
Step 1: Check the substitution syntax
The substitution command requires delimiters: s/pattern/replacement/. The final '/' is missing here.
Step 2: Identify the missing delimiter
The command ends with 's/hello/goodbye' missing the closing '/' delimiter after 'goodbye'.
Final Answer:
Missing delimiter after replacement text -> Option D
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
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/.
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.
Final Answer:
sed '2,4s/cat/dog/' pets.txt -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.