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

[经验分享] linux sed基本使用

[复制链接]

尚未签到

发表于 2018-5-19 11:39:29 | 显示全部楼层 |阅读模式
sed基本编程
  理论部分
编辑特性
  sed 流编辑器 stream editor  文本编辑器 操作文本,按行进行.逐行处理  并不直接处理文本文件,而是将编辑的行,读取到内存 (内存空间称为模式空间) 在内存中编辑 输入到屏幕上.
  
  文本处理流程
  注释:
  把行 读取到内存 à如果符合模式à使用sed命令编辑à输出到屏幕
  

  
  sed根据匹配的模式条件处理文本
  sed默认不对源文件做任何处理,只对模式空间的数据做处理.处理结束 将模式空间的内容输出到屏幕;
sed简单的文本编辑语言
  
  
sed语法格式
  sed [选项]AddressCommand 修饰符 file1… file2 ..
  参数解释
  选项:
-n:不显示模式空间的内容,只显示符合条件的行.
-i:直接修改源文件(小心)
-e:多个操作同时进行
  Address:  地址范围
  
  1. LineNumber       #特定的行    ($:最后一行)
  2. Start,End          # 起始行,结束行 (1,100)
  3. /^root/           #正则表达式   (找出以root开头的行)
  4. mode1,mode2    #第一次被模式1匹配的行开始,到第一次被模式2匹配的行结束.
  5. StartLine, +n      #从现在的行到往后n行  5,+2

  Command: 执行的命令
  
     d: #删除符合条件的行;
p:输出 打印符合条件的行;
     a \内容:在指定的行后面追加新的内容;
i \内容:在指定的行前面追加新的内容;
r  file :将指定的文件的内容添加到符合条件的行
w file : 将指定的文件的内容另存为符合条件的行处
s /模式/字符/ :查找并替换   s###  s@@@
  修饰符
  
   g :替换所有
i: 忽略字符的大小写
  
实战部分
  d: #删除符合条件的行;         
  root@compute:~/sed#sed‘1,2d’  /etc/passwd    删除/etc/passwd 前两行.
  root@compute:~/sed#sed‘1d’   /etc/passwd     只删除第一行.
  root@compute:~/sed#sed‘3,$d’  /etc/passwd    删除/etc/passwd   3-最后一行
  root@compute:~/sed#sed‘/root/d’ /etc/passwd    使用模式 删除符合root的行.但是会删除以root 开头的所有行
root@compute:~/sed#sed‘1,+3d’/etc/passwd     删除4行 第一到第四行.
root@compute:~/sed#sed '31,+6d' passwd          删除 31行后面6行

  p:输出 打印符合条件的行;
sed‘/^root/p’ /etc/passd  #显示以root开头的行,会显示所有内容;
  root@compute:~/sed#sed '/^root/p' passwd
  root:x:0:0:root:/root:/bin/bash
  root:x:0:0:root:/root:/bin/bash
  daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  bin:x:2:2:bin:/bin:/usr/sbin/nologin
  
     
  root@compute:~/sed# sed -n'/^root/p' passwd #只显示符合条件的行;
  root:x:0:0:root:/root:/bin/bash

  a \内容:在指定的行后面追加新的内容;
  root@compute:~/sed#sed '/^nova/a\Glance:x:1002:1002::/home/glance:/' passwd
  nova:x:112:120::/var/lib/nova:/bin/false
  Glance:x:1002:1002::/home/glance:/
  #在匹配nova开头的行后面添加一行新的内容 内容是 “Glance:x:1002:1002::/home/glance:/”
  
  添加多行,使用\n换行符
  root@compute:~/sed#sed '/^nova/a\#This is a Glance user\nGlance:x:1002:1002::/home/glance:/'passwd
  nova:x:112:120::/var/lib/nova:/bin/false
  #This is a Glance user
  Glance:x:1002:1002::/home/glance:/

  i \内容:在指定的行前面插入新的内容;
  root@compute:~/sed# sed'/^nova/i\#Inert a line:' passwd
  #Inerta line:
  nova:x:112:120::/var/lib/nova:/bin/false
  
  r  file : 将指定的文件的内容添加到符合条件的行处
  root@compute:~/sed# sed'5r /etc/shadow' passwd
  # 将/etc/passwd第5行的后面添加/etc/shadow文件里的内容
  
  $r最后一行
  root@compute:~/sed# sed'$r /etc/shadow' passwd
  1,2r 第一和第二行都添加
  root@compute:~/sed# sed'1,2r test.txt' passwd
  root:x:0:0:root:/root:/bin/bash
  #This is a test file.
  daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  #This is a test file.
  

  w file : 将指定的文件的内容另存为符合条件的行处
  root@compute:~/sed# sed'/^root/w root.txt' passwd
  root.txt  另存为的文件  目的文件
passwd
  
  s /模式/字符/查找并替换
  将root替换为andy,-g为全部替换,不加g只替换第一个查询到的
root@compute:~/sed#sed 's/root/andy/' root.txt
andy:x:0:0:root:/root:/bin/bash
root@compute:~/sed#


  
  g:全部替换
root@compute:~/sed#sed 's/root/andy/g' root.txt
andy:x:0:0:andy:/andy:/bin/bash
  

运维网声明 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-461978-1-1.html 上篇帖子: Linux:进程池实现 下篇帖子: linux救援模式使用、自制linux系统和linux内核编译
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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