What if you could fix hundreds of text mistakes with just one simple command?
Why sed (stream editor) basics in Linux CLI? - Purpose & Use Cases
Imagine you have a long list of names in a text file, and you need to change every instance of "John" to "Jonathan". Doing this by opening the file and editing each name manually would take forever, especially if the file has hundreds or thousands of lines.
Manually searching and replacing text is slow and tiring. You might miss some names or make mistakes. If you need to do this often or on many files, it becomes a huge headache. Plus, it's hard to keep track of what you changed.
Using sed, a stream editor, you can quickly and safely replace text across many lines or files with a simple command. It automates the process, making it fast, accurate, and repeatable without opening the file in an editor.
Open file, find 'John', replace with 'Jonathan', save, repeat for each occurrence
sed 's/John/Jonathan/g' input.txt > output.txtsed lets you automate text changes instantly, saving time and avoiding errors in repetitive editing tasks.
System admins use sed to update configuration files across many servers, changing IP addresses or settings without opening each file manually.
Manual text editing is slow and error-prone.
sed automates text replacement efficiently.
This saves time and ensures consistent changes.
Practice
sed command sed 's/cat/dog/' file.txt do?Solution
Step 1: Understand the substitution command
Thes/pattern/replacement/syntax insedreplaces 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 offile.txt.Final Answer:
Replaces the first occurrence of 'cat' with 'dog' on each line of file.txt -> Option BQuick Check:
sed substitution = replace first match [OK]
- Thinking it deletes lines instead of substituting
- Assuming it replaces all occurrences without 'g' flag
- Confusing printing lines with substitution
sed?Solution
Step 1: Identify the delete command syntax in sed
To delete lines matching a pattern, the syntax issed '/pattern/d'.Step 2: Match the correct option
sed '/error/d' filename usessed '/error/d', which deletes lines containing 'error'. Other options have incorrect syntax.Final Answer:
sed '/error/d' filename -> Option AQuick Check:
Delete lines with pattern = /pattern/d [OK]
- Placing 'd' before the pattern
- Using substitution syntax instead of delete
- Writing 'delete' instead of 'd'
echo 'apple banana apple' | sed 's/apple/orange/g'?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 AQuick Check:
Substitute all matches with 'g' flag = replaced all [OK]
- Forgetting the 'g' flag replaces only first occurrence
- Confusing output with original input
- Misreading the pipe input
sed command: sed 's/hello/goodbye' file.txtSolution
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 DQuick Check:
Substitution needs closing '/' delimiter [OK]
- Omitting the last '/' in substitution
- Assuming 's' can't be used on files
- Thinking pattern must be a regex error
pets.txt. Which sed command achieves this?Solution
Step 1: Understand address range in sed
To apply a command only on specific lines, usestart,endcommandsyntax, e.g.,2,4s/pattern/replacement/.Step 2: Match the correct syntax
sed '2,4s/cat/dog/' pets.txt correctly uses2,4s/cat/dog/to replace 'cat' with 'dog' on lines 2 to 4.Final Answer:
sed '2,4s/cat/dog/' pets.txt -> Option CQuick Check:
Use line range before command to limit sed action [OK]
- Placing line numbers after substitution command
- Using incorrect range syntax like '2-4'
- Adding slashes around line numbers
Ready to prove it?
Pass the test and this pattern moves unknown
