linux sed给空文件首行插入_Sed命令高级功能,学好了工作不愁

本文介绍了Linux中的sed命令高级功能,包括原理、工作模式及应用示例。通过理解sed的pattern space和hold space,学习如何进行缓冲区操作,如交换、追加和删除。举例说明了如何利用sed对文件内容进行特定操作,如替换、筛选和变换,提升在实际工作中的应用能力。
摘要由CSDN通过智能技术生成
26b2498fc3e7cb3d0fc9cb3a9948edcd.gif

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

sed命令有两个空间,一个叫pattern space,一个叫hold space。这两个空间能够证明人类的脑瓜容量是非常小的,需要经过大量的训练和烧脑的理解,才能适应一些非常简单的操作。

不信看下面简单的命令,作用是,删除文件中最后两行。

sed 'N; $!P;$!D;$d' file

《Linux生产环境上,最常用的一套“Sed“技巧》

一文中,我们介绍了常用的sed命令和操作,而且使用了两张图来作为辅助。但可惜的是,这两张图,严格来说是不准确的 (比如s命令,只是其中的一个子集),即使它能够帮助初学者快速入门。

本篇属于sed的中级用法,常见在一些sed脚本中,在日常中应用并不多,但往往能够获得意想不到的效果。

原理

工作模式

这要从sed的工作模式来说起。

997e555e7884141359178608cbf81a5d.png

按照我们读取一个文件的尿性,一般是持续循环读取。比如下面的python代码,print代表p命令。

with open('file', 'r') as f: for line in f.readlines(): print(line)

sed命令在这之上,还缓冲了另外一个东西。那就是“上一行的内容” ,叫做hold space。而当前行,叫做patter space。用python简单表现一下:

hold_space = ""with open('file', '
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值