bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/Bash/Text Processing
Bash•Text Processing

Bash sed Command - Stream Editor

Using the sed Command

The sed command is a stream editor used to perform basic text transformations on an input stream (a file or input from a pipeline).

It's a powerful tool for making quick edits to files or streams of data.

All examples below use the example_text.txt file:

Hello World
Line 1
Line 2

Basic Usage

To replace the first occurrence of a pattern in a file, use sed 's/old/new/' filename :

Example: Replace Text

sed 's/World/Bash/' example_text.txt
Hello Bash
Line 1
Line 2

Options

The sed command has options to change how it works:

  • -i - Edit files directly without needing to save separately
  • -e - Add the script to the commands to be executed
  • -n - Don't automatically print lines
  • -r - Use extended regular expressions
  • -f - Add script from a file
  • -l - Specify line length for l command

Edit Files In Place

The -i option allows you to edit files directly without needing to save separately.

Without this option, sed outputs the result to the standard output, and you must redirect it to a file to save changes.

Example: Edit Files In Place

sed -i 's/World/Bash/g' example_text.txt
cat example_text.txt
Hello Bash
Line 1
Line 2

Suppress Printing

The -n option suppresses automatic printing of pattern space.

By default, sed prints each line of input to the output. Using -n allows you to control which lines are printed, typically with the p command.

Example: Suppress Printing

sed -n 's/World/Bash/p' example_text.txt
Hello Bash

Extended Regular Expressions

The -r option allows the use of extended regular expressions, which provide more powerful pattern matching capabilities than basic regular expressions.

Without this option, sed uses basic regular expressions.

Example: Extended Regular Expressions

sed -r 's/(World|Line)/Hello/g' example_text.txt
Hello Hello
Hello 1
Hello 2

Script from a File

The -f option allows you to add a script from a file, which is useful for executing complex or multiple sed commands.

Without this option, you must specify the script directly in the command line.

Content of script.sed file:

s/World/Bash/g

Example: Script from a File

sed -f script.sed example_text.txt
Hello Bash
Line 1
Line 2

Specify Line Length

The -l option specifies the line length for the l command, which prints lines with non-printable characters.

This option is useful for formatting output when dealing with long lines.

Example: Specify Line Length

sed -l 10 'l' example_text.txt
Hello Wor\
ld$
Hello World
Line 1$
Line 1
Line 2$
Line 2

This option appends a $ at the end of each line to indicate the end of the line.

Redirect Output to a File

To save the changes made by sed to a file, you can redirect the output to a new file. This is useful when you don't want to overwrite the original file.

Example: Redirect Output

sed 's/World/Bash/' example_text.txt > new_example_text.txt
cat new_example_text.txt
Hello Bash
Line 1
Line 2

Using sed for Advanced Text Processing

Sed can perform advanced text processing tasks. For example, sed 's/^/Prefix: /' example_text.txt adds a prefix to each line.

Example: Advanced Text Processing

sed 's/^/Prefix: /' example_text.txt
Prefix: Hello World
Prefix: Line 1
Prefix: Line 2

Common Errors and Troubleshooting

When using sed , you might encounter errors such as:

  • "sed: command garbled" - Check your command syntax.
  • "sed: can't read file" - Ensure the file path is correct and accessible.

Debugging tips include using echo to print intermediate results and verify command logic.

Previous

Bash awk - Pattern Scanning and Processing Language

Next

Bash cut Command - Remove Sections from Lines

This chapter

Overview
7

Lessons

18m

Read time

1. Bash grep Command - Search Text Using Patterns2. Bash awk - Pattern Scanning and Processing Language3. Bash sed Command - Stream Editor4. Bash cut Command - Remove Sections from Lines5. Bash sort Command - Sort Lines of Text Files6. Bash tail Command - Display Last Part of Files7. Bash head Command - Display the beginning of a file

On this page

Using the sed CommandBasic UsageExample: Replace TextOptionsEdit Files In PlaceExample: Edit Files In PlaceSuppress PrintingExample: Suppress PrintingExtended Regular ExpressionsExample: Extended Regular ExpressionsScript from a FileExample: Script from a FileSpecify Line LengthExample: Specify Line LengthRedirect Output to a FileExample: Redirect OutputUsing sed for Advanced Text ProcessingExample: Advanced Text ProcessingCommon Errors and Troubleshooting