linux sed 多行处理详细总结
在正常情况下,sed将待处理的行读入模式空间,脚本中的命令就一条接着一条的对该行进行处理,直到脚本执行完毕,然后该行被输出,模式空间请空;然后重复刚才的动作,文件中的新的一行被读入,直到文件处理完备。但是,各种各样的原因,比如用户希望在某个条件下脚本中的某个命令被执行,或者希望模式空间得到保留以便下一次的处理,都有可能使得sed在处理文件的时候不按照正常的流程来进行。这个时候,sed设置了一些高级命令来满足用户的要求。如果想要学习sed的高级命令,首先要了解如下两个缓存区:
1、模式空间(pattern space)的定义:模式空间就是一个缓存区,保存sed刚刚从输入端读取的。
2、暂存空间(hold space)的定义:暂存空间就是在处理模式空间数据的时候,临时缓存数据用的。
还有几个命令参数:
g: 将hold space中的内容拷贝到pattern space中,原来pattern space里的内容清除
G: 将hold space中的内容append到pattern space后
h: 将pattern space中的内容拷贝到hold space中,原来的hold space里的内容被清除
H: 将pattern space中的内容append到hold space后
x: 交换pattern space和hold space的内容
比如咱们想要倒排一个文件的内容,文件如下:
[qiu.li@l-tdata1.tkt.cn6 ~]$ cat tmp 1-line2-line3-line执行如下命令:
[qiu.li@l-tdata1.tkt.cn6 ~]$ sed '2,$G;h;$!d' tmp3-line2-line1-line下面咱们逐步理解上面的执行过程
一、让咱们来分析一下如下三条命令:
- 2,$G:从第二行到最后一行执行G命令
- h:执行h命令
- $!d:删除除了最后一行的所有行
二、具体的操作
- 扫描到第一行
- 将1-line放入模式空间;此时模式空间还是1-line;
- 直接执行h命令,此时暂存空间是1-line;
- 执行d命令,删除了模式空间仅有的一行数据,删除之后,模式空间是空的
- 扫描到第二行
- 将2-line放入模式空间
- 执行G命令,将暂存空间的1-line添加到模式空间2-line的后面,此时模式空间是2-line1-line;
- 执行h命令,此时暂存空间的内容是2-line1-line;
- 执行d命令,模式空间被清空
- 扫描到第三行
- 将3-line放入模式空间,
- 执行G命令,将暂存空间的2-line1-line添加到模式空间3-line的后面,此时模式空间是3-line2-line1-line;
- 执行h命令,此时暂存空间的内容是3-line2-line1-line;
- 不执行$!d;
- 直接输出 3-line2-line1-line
当然,命令:sed '1!G;h;$!d' tmp 也能有这个效果。
推荐系统
番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载
语言:中文版系统大小:3.98GB系统类型:Win10雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载
语言:中文版系统大小:3.98GB系统类型:Win10电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.15GB系统类型:Win10
相关文章
- os x 10.10wifi问题怎么解决?mac os x 10.10 yosemite wifi修复教程
- Win10锁屏密码怎么取消?2种关闭Win10锁屏密码方法
- 在windows7系统里建立虚拟机(VMware Workstation)的具体步骤(图文)
- pcscan.exe是什么进程 pcscan进程查询
- win8中文版的怎么改成英文版图文教程
- 如何更改win7双系统开机系统选择时间 加快开机呢?
- Win10系统Cortan位置历史记录开关变成灰色了怎么办?附解决方法
- Win8系统右侧滑出的“设备”超级按钮如何使用
- Win10应用商店打不开了怎么办?
- Win10移动版周年更新已适配骁龙830/625处理器介绍
- Windows8设置文件历史记录驱动器及网络位置的方法
- 苹果os x el capitan系统发布 苹果os x el capitan系统下载
- Win10技巧:为PS1文件右键菜单添加管理员权限选项
- 秒变双系统 解决win10程序卡死的就是它了
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 3深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 4电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1新萝卜家园电脑城专用系统 Windows10 x64 企业版2018年7月(64位)快速版IS下载
- 2笔记本系统Ghost Win8.1 (X64) 喜迎国庆 全新纯净版2021年10月(永久激活) 提供下载
- 3深度技术Ghost Win7 Sp1 电脑城万能装机版2020年9月(32位) ISO高速下载
- 4深度技术Ghost Win8.1 x32位 特别纯净版2021年9月(免激活) ISO镜像高速下载
- 5深度技术 GHOSTXPSP3 电脑城极速装机版 2020年7月 ISO镜像高速下载
- 6番茄花园GhostWin7 SP1电脑城极速装机版2020年5月(32位) 最新高速下载
- 7深度技术 GHOSTXPSP3 新春特别 电脑城极速装机版 2022年2月 ISO镜像高速下载
- 8新萝卜家园 Ghost Win7 x64 SP1 极速版2020年5月(64位) 高速下载
- 9笔记本&台式机专用系统 GhostWin7 32位新春特别 旗舰版2022年2月(32位) ISO镜像免费下载
- 10番茄花园Ghost Win8.1 x64 办公纯净版2020年1月(激活版) ISO镜像高速下载