Linux - sed command


Linux - sed command

Linux - sed command

Delete lines using sed command

In the following examples, the sed command removes the lines in file that are in a particular position in a file.

Delete first line or header line

The d option in sed command is used to delete a line. The syntax for deleting a line is:

sed 'Nd' file

Here N indicates Nth line in a file. In the following example, the sed command removes the first line in a file.

sed '1d' file
unix
fedora
debian
ubuntu

The following sed command is used to remove the footer line in a file. The $ indicates the last line of a file.

sed '$d' file
linux
unix
fedora
debian

Delete particular line

This is similar to the first example. The below sed command removes the second line in a file.

sed '2d' file
linux
fedora
debian
ubuntu

Delete range of lines

The sed command can be used to delete a range of lines. The syntax is shown below:

sed 'm,nd' file

Here m and n are min and max line numbers. The sed command removes the lines from m to n in the file. The following sed command deletes the lines ranging from 2 to 4:

sed '2,4d' file
linux
ubuntu

Delete lines other than the first line or header line

Use the negation (!) operator with d option in sed command. The following sed command removes all the lines except the header line.

sed '1!d' file
linux
sed '$!d' file
ubuntu

Delete lines other than the specified range

sed '2,4!d' file
unix
fedora
debian

Here the sed command removes lines other than 2nd, 3rd and 4th.

Delete first and last line

You can specify the list of lines you want to remove in sed command with semicolon as a delimiter.

sed '1d;$d' file
unix
fedora
debian

Delete empty lines or blank lines

sed '/^$/d' file

The ^$ indicates sed command to delete empty lines. However, this sed do not remove the lines that contain spaces.

Sed Command to Delete Lines - Based on Pattern Match

In the following examples, the sed command deletes the lines in file which match the given pattern.

Delete lines that begin with specified character

sed '/^u/d' file
linux
fedora
debian

^ is to specify the starting of the line. Above sed command removes all the lines that start with character ‘u’.

Delete lines that end with specified character

sed '/x$/d' file
fedora
debian
ubuntu

$ is to indicate the end of the line. The above command deletes all the lines that end with character ‘x’.

####Delete lines which are in upper case or capital letters

sed '/^[A-Z]*$/d' file

Delete lines that contain a pattern

sed '/debian/d' file
linux
unix
fedora
ubuntu

Delete lines starting from a pattern till the last line

sed '/fedora/,$d' file
linux
unix

Here the sed command removes the line that matches the pattern fedora and also deletes all the lines to the end of the file which appear next to this matching line.

Delete last line only if it contains the pattern

sed '${/ubuntu/d;}' file
linux
unix
fedora
debian

Here $ indicates the last line. If you want to delete Nth line only if it contains a pattern, then in place of $ place the line number.

Note: In all the above examples, the sed command prints the contents of the file on the unix or linux terminal by removing the lines. However the sed command does not remove the lines from the source file. To Remove the lines from the source file itself, use the -i option with sed command.

sed -i '1d' file

If you don’t wish to delete the lines from the original source file you can redirect the output of the sed command to another file.

sed '1d' file > newfile

Posts on sed

SED

Linux - sed command

Related Post:

Why Python for Production Services

Vector Deployment Patterns

Vector Aggregator — Transform and Route

Vector Agent — Lightweight Log Collection

HashiCorp Vault — Centralized Secret Management

Vault Auth Methods — Token vs AppRole

Unit Tests for Business Logic

Test Coverage and CI Integration

Docker Swarm Deployment

Why Structured Logging Matters

structlog — JSON Logging with Context

Secret Workflow — Local to Production

Scheduled Security Scans

Production Operations Runbook

pytest — Fixtures, Conftest, and Async Testing

Pydantic — Request & Response Validation

Prometheus Metrics — RED Method

Project Structure with pyproject.toml

Pre-Commit Hooks for Security

Auto-Instrumentation for FastAPI

OpenTelemetry — Traces, Spans, and Context

Marathon/Mesos Deployment

Log Rotation and Disk Management

End-to-End Pipeline

Kubernetes Deployment

Kafka — Durable Log Transport

Jaeger — Visualizing Distributed Traces

Integration Tests for API Endpoints

Health Checks and Readiness Probes

Graceful Shutdown

GitHub Actions CI Pipeline

FastAPI — Async-First HTTP Framework

Error Handling & Response Models

Elasticsearch + Kibana — Search and Visualize

Dual Output — Stdout and File Logging

Docker — Containerize from Day One

Docker Compose Deployment

Dependency Updates and Maintenance

Dependency Auditing with pip-audit

Request-Scoped Logging with Correlation IDs

Container Security with Trivy

Environment-Based Config with pydantic-settings

Async Database Operations

API Versioning Strategies

RESTful Route Design with FastAPI Router

K8s Contributor Playground, Learning by Contributing

Git - Switch Remote URL

Git - Reset Commits

Git - Cheat Sheet

Git - Push with SSH

Git - Merge

Git - Init

Git - Project Lead/Manager

Git - Commit Files

Git - Create Branch

Git - Common Commands

Git - Branch Management

Adding Try in PWD button to README file

Docker Issues

Git - Basics for a Developer

Jenkins - Upgrade Jenkins

Jenkins - Schedule

AWS EBS Volmes - Create and attach the EBS volume with mounting

Elasticsearch - Dumping documents from multi-node to single node

CICD Jenkins - Send email with default content

Git - Intro

Arachni - VAPT Tool

VAPT - Vulnerability Assessment and Penetration Testing