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
sedrelies 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.txtThis 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.txtThis 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.txthis 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.txtThis 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' *.txtThis 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.