在正常情况下,sed将待处理的行读入模式空间,脚本中的命令就一条接着一条的对该行进行处理,直到脚本执行完毕,然后该行被输出,模式空间请空;然后重复刚才的动作,文件中的新的一行被读入,直到文件处理完备。但是,各种各样的原因,比如用户希望在某个条件下脚本中的某个命令被执行,或者希望模式空间得到保留以便下一次的处理,都有可能使得sed在处理文件的时候不按照正常的流程来进行。这个时候,sed设置了一些高级命令来满足用户的要求。如果想要学习sed的高级命令,首先要了解如下两个缓存区:
1、模式空间(pattern space)的定义:模式空间就是一个缓存区,保存sed刚刚从输入端读取的。
2、暂存空间(hold space)的定义:暂存空间就是在处理模式空间数据的时候,临时缓存数据用的。
还有几个命令参数:
g: 将hold space中的内容拷贝到pattern space中,原来pattern space里的内容清除
G: 将hold space中的内容append到pattern space\n后
h: 将pattern space中的内容拷贝到hold space中,原来的hold space里的内容被清除
H: 将pattern space中的内容append到hold space\n后
x: 交换pattern space和hold space的内容
比如咱们想要倒排一个文件的内容,文件如下:
[qiu.li@l-tdata1.tkt.cn6 ~]$ cat tmp 1-line 2-line 3-line
执行如下命令:
[qiu.li@l-tdata1.tkt.cn6 ~]$ sed '2,$G;h;$!d' tmp 3-line 2-line 1-line
下面咱们逐步理解上面的执行过程
一、让咱们来分析一下如下三条命令:
二、具体的操作
当然,命令:sed '1!G;h;$!d' tmp 也能有这个效果。
Linux Mint 20.2“Uma”中的新
EasyWSL工具将 Linux Docker 映
适用于 Linux 5.16 的新 Zst
适用于Linux的Windows子系统
Linux系统xlsatom命令如何使
《火焰纹章Engage》安娜怎么培养?安娜转
火焰纹章Engage 游戏里不少角色可以培养成强力的队友,比如安娜......
阅读
数据恢复方案:如何从损坏的硬盘中恢复
数据恢复方案:如何从损坏的硬盘中恢复数据?硬盘损坏是许多......
阅读
荣耀70上市时间和价格
荣耀70系列最近正式通过了3C认证,作为下一代的荣耀旗舰有着不......
阅读
当应用程序在Windows10系统启动后自动启动
微软的Windows10 Insider Builds最近推出了一个有用的新功能,当系统......
阅读
暗区突围赛季结束保留什么
暗区突围赛季结束保留什么,暗区突围赛季结束保留什么?在赛季......
阅读今天小编为大家分享的是Linux以form表单形式上传文件讲解,希望对大家会有帮助,有需要的朋友可以参考下...
次阅读
今天小编为大家带来的是 linux命令行下进入带空格的文件夹的方法。希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。今天小编要为大家分享的是SELinux基本概念详解,希望对大家会有帮助,有...
次阅读
最近一些朋友反馈说不知道如何去除Linux Kernel版本号后面的加号?今天小编就为大家分享去除Linux Kernel版本号后面的加号的方法!希望能够帮助到大家,有需要的朋友一起去看看吧...
次阅读
WindowsSubsystem for Linux(WSL)2对Windows10版本1903和1909的支持 根据客户的反馈,微软将把WindowsSubsystem for Linux(WSL)2支持带到Windows10版本1903和Windows1...
次阅读
今天小编为大家分享的是为Llinux系统添加交换分区(swap space)的方法。希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
这篇文章主要讲述了linux系统很卡的基本排查方法介绍。希望对大家会有帮助,下面就随小编一起去看看具体的操作吧...
次阅读
下面小编为大家带来的是利用linux命令行工具进行文本行过滤的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
Linux系统的安装软件方式非常多,所以到现在还没有一个通用的方法能查到某个软件已经是否安装了,不过下面我总结了一些类型供大家参考...
次阅读
今天小编将为大家带来的是Linux下增大可打开文件描述符的最大数的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
今天小编为大家带来的是Linux下源码安装的经验详解。希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
在本文中,我们将介绍如何将大于 2TB 的新磁盘添加到现有的 Linux 服务器中(如 RHEL/CentOS 或 Debian/Ubuntu)中,感兴趣的朋友可以一起看看...
次阅读
这篇文章主要介绍了Linux批量清空当前目录中的日志文件,需要的朋友可以参考下...
次阅读
这篇文章主要介绍了Linux如何通过命令查看日志文件的某几行(中间几行或最后几行),需要的朋友可以参考下...
次阅读
最近一些朋友问小编Linux下如何设置交换文件?今天小编将为大家带来的是Linux下设置交换文件的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读