The sed
(stream editor) command in Linux is a powerful utility used for parsing and transforming text from input streams or files. It is widely used for tasks like text substitution, insertion, deletion, and complex text manipulations. sed
operates line by line, making it ideal for processing large files efficiently.

The sed
command is an essential tool for anyone who needs to automate text manipulation tasks in Linux. Unlike interactive text editors like vim
or nano
, sed
is a non-interactive, command-line tool designed to operate on streams of text. It is widely used for tasks like:
- Replacing text patterns
- Deleting lines or text
- Inserting new lines
- Performing complex text transformations
By learning the sed
command, users can save time and automate processes that would otherwise be tedious.
This guide covers the basics of using the sed
command, including its syntax, options, and practical examples to help you integrate it into your daily Linux tasks.
Prerequisites
To follow along with this guide, you should have:
- A basic understanding of Linux command-line operations.
- Access to a terminal or shell with a Linux environment (Ubuntu, CentOS, etc.).
- Basic knowledge of regular expressions, as
sed
relies on them for pattern matching.
You don’t need to install sed
as it comes pre-installed on most Linux distributions.
sed
Command Syntax
The general syntax of the sed
command in Linux is:
sed [OPTIONS] 'COMMAND' FILE
- OPTIONS: Various flags and options to modify
sed
‘s behavior. - ‘COMMAND’: The operation you want to perform, such as search and replace, delete, etc.
- FILE: The file or stream of text on which you want to operate.
Common sed
Syntax Formats
The sed
command in Linux can be used with various syntax formats to perform different text manipulations. Understanding these basic syntax formats is essential for harnessing the full power of sed
. In this section, we will cover the most commonly used syntax formats, including substitution, deletion, and printing.
- Substitution Syntax
The substitution syntax is one of the most commonly used features of the sed
command. It allows you to search for a specific pattern in a file and replace it with another text string. This operation can be performed globally on all occurrences or just on the first match in each line.
sed 's/pattern/replacement/' file
- s: Substitution command.
- pattern: The text or regular expression to search for.
- replacement: The text to replace the matched pattern.
- Delete Syntax
The delete syntax is used to remove specific lines from a file based on certain conditions. It is ideal for eliminating unwanted content or lines that match a specific pattern, helping streamline file content.
sed 'd' file
- d: Delete the lines.
- Print Syntax
The print syntax is used to selectively print lines that match a condition. By suppressing automatic printing of all lines, you can filter and display only the lines that meet specific criteria, making it useful for extracting relevant data.
sed -n 'p' file
- -n: Suppresses automatic printing of each line.
- p: Prints the lines that match the condition.
Check Out | namp Command in Linux: 5 Best Practical Examples
Most Common sed
Command Options
sed
have a variety of options that modify their behavior. Below are some of the most commonly used options:
Option | Description |
---|---|
-e | Allows you to specify multiple sed commands in a single run. |
-i | Edits the file in place. This modifies the file directly instead of outputting to standard output. |
-n | Suppresses automatic printing of lines. Only explicitly specified lines (e.g., using the p command) will be printed. |
-r / -E | Enables extended regular expressions (ERE). This allows more complex pattern matching, like using parentheses for grouping or the pipe ` |
-f | Specifies a file that contains sed commands, allowing you to run a series of commands without writing them directly in the command line. |
-s | Treats the input as a single long line rather than a series of lines (useful for processing long files as a single stream). |
-u | Unbuffered mode. Output is written immediately instead of being buffered, which is useful for processing large streams of data. |
Check Out | SCP Command in Linux: A Complete User Guide
Using sed
Command in Linux Example
The sed
command in Linux is a versatile tool that can be used to perform various text manipulations like substitution, deletion, and insertion. It operates on a line-by-line basis and is often used in shell scripting for automating text-processing tasks. In this section, we’ll explore 5 practical examples of using sed
to make common text modifications, providing you with hands-on ways to enhance your command-line workflows.
- Substitute Text in a File
One of the most common uses of sed
is to replace text in a file. To replace the first occurrence of a pattern in each line, use the following syntax:
sed 's/old_text/new_text/' file.txt
This command will replace the first instance of old_text
with new_text
in each line of file.txt
. To replace all occurrences on a line, you can append the g
flag to the command:
sed 's/old_text/new_text/g' file.txt
- Delete Lines Containing a Pattern
sed
can delete lines that contain a specific pattern using the d
command. Here’s an example of how to delete lines containing the word “example”:
sed '/example/d' file.txt
This command removes all lines that have the word “example” in file.txt
.
- Print Lines That Match a Pattern
By default, sed
prints every line it processes. However, you can restrict the output to only lines that match a pattern by using the -n
option along with the p
command:
sed -n '/pattern/p' file.txt
his command will print only the lines that contain the word “pattern” from file.txt
.
- In-place Editing of a File
The -i
option allows you to edit a file directly, without needing to redirect the output. This is useful when you want to apply changes and save them back to the original file. For example:
sed -i 's/foo/bar/' file.txt
This command replaces all occurrences of “foo” with “bar” in file.txt
and saves the changes in place.
- Replace Text Across Multiple Files
You can use sed
to apply changes to multiple files at once. For example, to replace “apple” with “orange” in all .txt
files in the current directory, you can use:
sed -i 's/apple/orange/g' *.txt
This command will modify all .txt
files in the current directory, replacing every instance of “apple” with “orange”.
Conclusion
The sed
command is a versatile and powerful tool for text manipulation in Linux. With its ability to search, replace, delete, and modify text efficiently, it is invaluable for automation tasks. By mastering sed
‘s syntax and options, you can perform complex text transformations without needing a full-fledged text editor.
Whether you’re cleaning up log files, transforming data for scripts, or simply automating repetitive text-editing tasks, sed
should be in your toolkit.