sed: Stream Editor for Filtering and Transforming Text
August 12th, 2024 12:46 PM Mr. Q Categories: Command
The sed
command is a stream editor used for filtering and transforming text. It processes text line by line and can perform various editing tasks, such as substitutions, deletions, and insertions.
Command:
sed [options] 'script' [file...]
Examples
- Substitute Text
sed 's/old/new/' filename.txt
Description: Replaces the first occurrence of “old” with “new” in each line of filename.txt
.
Sample File (filename.txt
):
This is the old text.
Another line with old text.
Sample Output:
This is the new text.
Another line with old text.
- Replace All Occurrences in Each Line
sed 's/old/new/g' filename.txt
Description: Replaces all occurrences of “old” with “new” in each line of filename.txt
.
Sample File (filename.txt
):
This old text is old.
Sample Output:
This new text is new.
- Delete Lines Matching a Pattern
sed '/pattern/d' filename.txt
Description: Deletes lines that match the pattern “pattern” from filename.txt
.
Sample File (filename.txt
):
This is a line.
Remove this line.
Another line.
Sample Output:
This is a line.
Another line.
- Insert Text Before a Line
sed '/pattern/i\new line' filename.txt
Description: Inserts “new line” before lines that match the pattern “pattern” in filename.txt
.
Sample File (filename.txt
):
Before pattern
This is the pattern line.
After pattern
Sample Output:
Before pattern
new line
This is the pattern line.
After pattern
- Replace Text in Multiple Files
sed -i 's/old/new/g' file1.txt file2.txt
Description: Replaces all occurrences of “old” with “new” in file1.txt
and file2.txt
. The -i
option edits files in place.
Sample File (file1.txt
):
old text here
Sample Output in file1.txt
:
new text here
- Print Lines Matching a Pattern
sed -n '/pattern/p' filename.txt
Description: Prints only the lines that match the pattern “pattern” from filename.txt
.
Sample File (filename.txt
):
Line 1
Line 2 with pattern
Line 3
Sample Output:
Line 2 with pattern
The sed
command is a versatile tool for text processing, allowing for complex text manipulation in scripts and command-line operations.