


Comprehensive summary: Detailed explanation of Linux sed multi-line processing
Under normal circumstances, sed reads the line to be processed into the pattern space, and the commands in the script process the line one after another until the script is executed, and then the line is output, leaving the pattern space empty; Then repeat the previous action, and a new line in the file is read until the file is processed completely. However, various reasons, such as the user wanting a certain command in the script to be executed under certain conditions, or wanting the pattern space to be retained for next processing, may cause sed to not follow the instructions when processing files. Carry out the normal process. At this time, sed has set up some advanced commands to meet user requirements. If you want to learn the advanced commands of sed, you must first understand the following two buffer areas:
1. Definition of pattern space: Pattern space is a buffer area that saves what sed has just read from the input end.
2. Definition of hold space: Hold space is used to temporarily cache data when processing pattern space data.
There are also several command parameters:
g: Copy the contents of the hold space to the pattern space, and clear the contents of the original pattern space
G: Append the content in the hold space to the pattern space\n
h: Copy the contents of the pattern space to the hold space, and the contents of the original hold space are cleared
H: Append the content in pattern space to hold space\n
x: Exchange the contents of pattern space and hold space
For example, if we want to reverse the contents of a file, the file is as follows:
[qiu.li@l-tdata1.tkt.cn6 ~]$ cat tmp 1-line 2-line 3-line
Execute the following command:
[qiu.li@l-tdata1.tkt.cn6 ~]$ sed '2,$G;h;$!d' tmp 3-line 2-line 1-line
Let’s gradually understand the above execution process
1. Let us analyze the following three commands:
- 2,$G: Execute G command from the second line to the last line
- h: Execute h command
- $!d: Delete all lines except the last line
2. Specific operations
- Scan to the first line
- Put 1-line into the pattern space; the pattern space is still 1-line at this time;
- Directly execute the h command, the temporary storage space is 1-line at this time;
- Execute the d command to delete the only row of data in the pattern space. After deletion, the pattern space is empty
- Scan to the second line
- Put 2-line into pattern space
- Execute the G command to add the 1-line of the temporary storage space to the back of the 2-line of the pattern space. At this time, the pattern space is 2-line\n1-line;
- Execute h command, the content of the temporary storage space is 2-line\n1-line;
- Execute the d command and the pattern space will be cleared
- Scan to the third line
- Put 3-line into pattern space,
- Execute the G command to add the 2-line\n1-line of the temporary space to the back of the 3-line of the pattern space. At this time, the pattern space is 3-line\n2-line\n1-line;
- Execute h command, the content of the temporary storage space is 3-line\n2-line\n1-line;
- Do not execute $!d;
- Direct output 3-line\n2-line\n1-line
Of course, the command: sed '1!G;h;$!d' tmp can also have this effect.
The above is the detailed content of Comprehensive summary: Detailed explanation of Linux sed multi-line processing. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The Linux command line interface provides a wealth of text processing tools, one of the most powerful tools is the sed command. sed is the abbreviation of Stream EDitor, a multi-functional tool that allows complex processing of text files and streams. What is Sed? sed is a non-interactive text editor that operates on pipeline inputs or text files. By providing directives, you can let it modify and process text in a file or stream. The most common use cases of sed include selecting text, replacing text, modifying original files, adding lines to text, or removing lines from text. It can be used from the command line in Bash and other command line shells. Sed command syntax sed

Discover Pilet: A Retro-Futuristic, Open-Source Mini-Computer Looking for a mini-computer that blends classic style with cutting-edge technology? Meet Pilet, a modular, open-source marvel powered by the Raspberry Pi 5. Boasting a 7-hour battery life

Linux: The cornerstone of modern computing, from smartphones to supercomputers, can do everything. Over the years, the size and complexity of the Linux kernel has increased significantly. As of January 2025, the Linux kernel source code contains approximately 40 million lines of code! This is one of the greatest achievements in the history of open source, community-driven projects. This article will discuss the exponential growth of the number of lines in the Linux kernel source code, the reasons and how to check the current number of lines by yourself. Directory -Linux kernel history Count the number of lines of the Linux kernel source code only count C and header files Exponential trend of kernel growth Verify historical Linux kernel lines Summary Linux kernel history Since 1991 Linus Tor

Efficiently Counting Files and Folders in Linux: A Comprehensive Guide Knowing how to quickly count files and directories in Linux is crucial for system administrators and anyone managing large datasets. This guide demonstrates using simple command-l

Liquorix kernel: a powerful tool to improve Linux system performance Linux is known for its flexibility, security and high performance, becoming the operating system of choice for developers, system administrators, and advanced users. However, the universal Linux kernel is not always meeting the needs of users seeking maximum performance and responsiveness. This is where the Liquorix kernel comes into play—a performance-optimized alternative that promises to enhance your Linux system. This article will explore what the Liquorix kernel is, why you might want to use it, and how to install and configure it to get the most out of your system. Liquorix kernel detailed explanation Liquorix kernel is a precompiled Linux kernel designed for

Efficiently managing user accounts and group memberships is crucial for Linux/Unix system administration. This ensures proper resource and data access control. This tutorial details how to add a user to multiple groups in Linux and Unix systems. We

The System76 Meerkat: A Mighty Mini PC Looking for a powerful yet space-saving computer? Meet the Meerkat mini PC from System76! This compact powerhouse is perfect for tidy desktops and demanding tasks. Table of Contents - Compact Design, Impressive

In today's digital age, data is not just information, but also a part of our lives. From photos and documents to sensitive personal information, our data represents our memories, work and interests. Although cloud storage services are widely available, they are often accompanied by privacy concerns, subscription fees, and customization restrictions. That's what building a personal cloud on Ubuntu is about as a powerful alternative, which gives you complete control over your data and the flexibility to customize and scale as needed. This guide will guide you to set up a Ubuntu-based personal cloud, use Nextcloud as the primary application, and ensure your settings are secure and reliable. Why build a personal cloud on Ubuntu? Ubuntu is the most popular Linux
