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

linux shell sed awk 命令(1)-sed

[复制链接]

尚未签到

发表于 2018-8-27 08:35:58 | 显示全部楼层 |阅读模式
  linux shell sed awk 命令(1)-sed
  sed [选项]... {脚本指令} [输入文件]
  -n,--quiet,--silent    静默输出,该选项可以屏蔽自动打印
  -e    允许多个脚本命令被执行
  -f    从文件中读取脚本指令
  -i,--in-place    直接修改源文件
  -l    N        可以输出行的长度
  --posix        禁用GUN sed扩展功能
  -r    在脚本中使用扩展正则表达式
  -s,--separate    默认情况下sed将把输入的多个文件名作为一个长的连续的输入流.
  GUN sed 允许把他们当做单独的文件
  -u,--unbuffered    最低限度的缓存输入与输出
  eg:
  sed '2a TYPE=Ethernet' eth0   第二行后追加
  sed '3i TYPE=Ethernet ' eth0    第三行前插入
  sed 's/yes/no/g' eth0        将文本中的yes替换成no
  sed '3,4d' eth0              删除第三行和第四行
  sed '/^GATEWAY/d' eth0 删除geteway的行
  sed 's/yes/no/g;s/static/dhcp/g' eth0
  sed -e 's/yes/no/g' -e 's/static/dhcp/g' eth0  命令效果如上面命令一样
  sed -f sed_command.sh eth0   使用sed_command.sh中的命令进行操作
  sed_command 内容如下:
  /^$/d
  sed -n '2p' eth0  
  sed -n '1~2p' eth0  打印文件中奇数数行
  sed '2,8d' eth0 删除2~8之间所有行
  sed 常用命令汇总
  s 替换
  a 追加
  c 更改
  y 按字符串替换
  p 打印
  w 保存至文件
  d 删除
  i 插入
  l 打印,显示非打印字符
  L 打印,不显示非打印字符
  r 读入文件内容
  q 退出
  eg:
  (1)给html文件中第二个body 追加/
  1.test.html
  内容如下:
  
  test Web
  Hello world!
  
  2.command.sh
  内容如下:
  /body/{
  s//\/body/2
  }
  3.sed -f sed_command.sh test.html
  
  test Web
  Hello world!
  
  (2)给所有第一个的h1,h2等添加;第二个h1,h2添加

  •   test.html 内容如下:
  
  test Web
  
  h1Helloh1
  h2Helloh2
  h3Helloh3
  
  
  2. sed_command.sh内容如下:
  /h[0-9]/{
  s//\/1
  s//\/2
  }
  3. sed -f sed_command.sh test.html
  
  test Web
  
  Hello
  Hello
  Hello
  
  
  (3)sed '/ONBOOT/c ONBOOT=yes' eth0
  (4)
  1.test.test内容如下:
  aaa
  bbb
  ccc
  ddd
  eee
  fff
  2. sed '/.*/N;L' test.test
  aaa bbb
  aaa
  bbb
  ccc ddd
  ccc
  ddd
  eee fff
  eee
  fff
  sed '/.*/N;P' test.test
  sed '/.*/N;p' test.test
  (5)
  1.sed_test.sh 内容如下:
  #n
  /222/{
  N
  l
  }
  2.sed_test 内容如下:
  111
  222
  222
  222
  333
  3.sed -f sed_test.sh sed_test
  222\n222$
  222\n333$
  Hold (h,H),Get(g,G)
  Hold(h|H)    将模式空间的内容复制或追加到保持空间
  Get(g|G)     将保持空间的内容复制或追加到模式空间
  Exchange(x)    交换保持空间与模式空间
  eg:
  sed_command内容如下:
  /aaa/{
  h
  d
  }
  test.test内容如下:
  aaa
  bbb
  ccc
  ddd
  eee
  fff
  sed -f sed_command.sh test.test
  bbb
  ccc
  ddd
  eee
  fff


运维网声明 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-557054-1-1.html 上篇帖子: shell及正则表达式 下篇帖子: shell脚本练习(12.11)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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