设为首页 收藏本站
查看: 808|回复: 0

shell脚本--sed工具

[复制链接]

尚未签到

发表于 2018-8-28 06:33:19 | 显示全部楼层 |阅读模式
  sed
  sed:它叫做流式编辑器,它的工作场景一般是在编辑器中,把一段文本按行读入sed中然后按指定的方式输出,这是它最基本的用法。
  一、sed的基本操作:
  
  1、/pattern/action
  pattern为正则表达式,对满足pattern的行作action操作
  例如
DSC0000.png

  这条命令和grep基本一样,其中-n的意思是只将执行后面指令的显示出来,如果不加-n选项则会把所有信息显示以便并且把匹配到的多显示一遍,p的意思是打印,如果改成d则是删除。-i的话则会修改源文件
  2、/pattern/s/pattern1/pattern2/ 查找到第一个pattern所对应的行,然后将其中的pattern1转换为pattern2
  例如
DSC0001.png

  g的作用是将这一行中所有满足条件的元素都替换掉
  3,范围控制
DSC0002.png

  
  二、sed的高级操作
  sed的高级操作来源于它的两个空间,一个叫做模式空间,另一个叫做保持空间,在不显示用命令去使用保持空间的时候,它一直就工作在模式空间中,它的工作方式是这样的,按行读取到模式空间下进行操作后再输出,然后再拿下一行。
  保持空间的命令
  g:将hold space中的内容拷到pattern space中,
  G:将hold space中的内容append到patternspace\n后
  h:将pattern space中的内容拷贝到hold space中,
  原来的hold space里的内容被清除
  H:将pattern space中的内容append到holdspace\n后
  d:删除pattern中的所有行,并读入下一新行到pattern中
  D:删除multiline pattern中的第一行,不读入下一行
  x:交换保持空间和模式空间的内容
  例1:将上面的file中的每一行的结尾加一个空格
DSC0003.png

  例二:行列转换
DSC0004.png

  注意:使用H的作用是将每一行都追加到保持模式下,然后在最后将保持空间下的数据交换到
  模式空间然后执行替换操作,sed时按行去读取的,读取一行的时候是看不到\n的,只能将所
  有数据全部H到保持空间保存起来,才找的到。
  例三:倒序打印
DSC0005.png

  从字面上理解,第一行不从保持空间G,最后一行不用删除模式空间
  中的数据,其他行先G,然后h,之后d。
  例四:1到100的求和
DSC0006.png

  这个和上面的是类似的。
  总结:sed工具的学习主要是多加练习,它更多的是工作在编辑器下对文本的操作
  例如vim编译器下底行模式就可以用s///命令进行替换。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557410-1-1.html 上篇帖子: shell脚本--grep工具 下篇帖子: shell --- grep 命令详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表