- Posted on
- • commands
Replacing Text with `sed`: Practical Examples
- Author
-
-
- User
- Linux Bash
- Posts by this author
- Posts by this author
-
Replacing Text with sed
: Practical Examples
The sed
(stream editor) command in Unix-like operating systems is a powerful tool for manipulating text in data streams and files. An essential utility for system administrators and programmers, it allows for complex pattern matching, substitution, and more. In this article, we will focus on the specific application of sed
for replacing text strings. We’ll cover some practical examples that you can use daily to enhance your work efficiency.
Basic Syntax of sed
Before diving into the examples, let’s understand the basic syntax of the sed
command:
sed [options] 's/pattern/replacement/[flags]' file
Here, s
signifies the substitution operation. The pattern
is what you intend to replace, and the replacement
is the new text you want to insert.
Example 1: Replacing the First Occurrence of a String in a File
Suppose you have a file named example.txt
, and you want to replace the first occurrence of the word "apple" with "orange." You can achieve this with the following sed
command:
sed 's/apple/orange/' example.txt
By default, sed
only replaces the first instance of the pattern in each line. If example.txt
contains the word "apple" multiple times in a single line and you want to replace the very first occurrence throughout the file, use:
sed '0,/apple/s//orange/' example.txt
Example 2: Globally Replacing a String in a File
If you need to replace every occurrence of "apple" with "orange" within the entire file, you can add the g
flag at the end of the command, which stands for "global":
sed 's/apple/orange/g' example.txt
This command will scan the entire file and replace every matching instance.
Example 3: Replacing Strings on Specific Lines
Sometimes, you might need to replace text only on specific lines. For example, to replace "apple" with "orange" only on the 3rd line of example.txt
, use:
sed '3 s/apple/orange/' example.txt
You can also specify a range of lines. To replace "apple" with "orange" from line 2 to line 5:
sed '2,5 s/apple/orange/g' example.txt
Example 4: In-place File Editing
By default, sed
outputs the modified content to standard output. To save the changes back into the file, use the -i
option:
sed -i 's/apple/orange/g' example.txt
Be cautious with this option, as it directly modifies your file.
Example 5: Using Regular Expressions
sed
supports regular expressions which provide powerful pattern matching capabilities. Suppose you want to replace any three-letter word that ends with "at" with "hat" in example.txt
:
sed 's/\bat\>/hat/g' example.txt
External slashes (\
) are used to denote word boundaries, ensuring that only whole words are matched.
Conclusion
These practical examples illustrate the versatility of sed
in text processing and editing tasks. Whether you're working on scripts, configurational files, or large data sets, mastering sed
can significantly streamline your workflow, allowing you to perform complex text manipulations with simple commands.
Always ensure to backup important files before using sed
with in-place editing, as it makes permanent changes to files. Happy editing with sed
!