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

shell三剑客之sed(一)

[复制链接]

尚未签到

发表于 2018-8-29 06:09:50 | 显示全部楼层 |阅读模式

  •   引言
  我们不生产水,我们只是大自然的搬运工。
  我不是在做广告,我只是整理sed的时候突然想起了这句话。因为我接下来几乎就是个搬运工了 DSC0000.gif 。没办法,前人总结的实在是太精辟了。思路清晰,一气呵成。我浏览了下,就让我有种感慨,sed也就这么点东西。说大话了,请忽略 DSC0001.gif
  总之一句话,这篇纯手打,你也可以说是抄的,我承认,但是能把他变成自己的怎么都成!要站在别人的肩膀上,才能看的更远。废话不多说,上干货。

  •   参考资料

  •   man sed 或者 sed --help
  •   《unix shell 范例精解》
  •   http://www.gnu.org/software/sed/


  •   sed,a stream editor
  上面是GRU官方文档的标题:sed,一个流编辑器,非交互式的编辑器。

  •   sed的工作过程
  文本文件--->sed的模式空间(缓存区)--->显示输出
  sed逐行处理文件(或输入),将当前处理的行放在sed模式空间里,在模式空间里处理完后显示输出,并删除模式空间里的内容。然后将下一行读入模式空间,处理并输出。
  我们发现,sed处理的是读入模式空间里的文件副本,不是原文件。所以使用sed编辑文件不会对原文件修改和破坏。

  •   sed的工作模式
正则表达式sed -n '/RE/p' filename定址地址可以是数字,正则表达式或者二者结合。

  •   正则表达式元字符
通用http://1076546426.blog.51cto.com/9959876/1702784&保存查找串以便在替换串中引用

  •   sed命令与选项
sed命令命令功能命令功能a\在当前行之后追加文本i\在当前行之前插入文本rAppend text read from filename.(从文件中读入并追加文本)c\用新文本替换当前行中的文本d删除行h/H  Copy/append pattern space to hold space.
  将模式空间的内容复制/追加到暂存缓冲区。
g/GCopy/append hold space to pattern space.xExchange the contents of the hold and pattern spaces.l列出非打印字符n/NRead/append the next line of input into the pattern space.pPrint the current pattern space.s###g全局替换,#为间隔符wWrite the current pattern space to filename.yy/source/dest/ 将字符串转换为另一个字符sed选项选项功能-n取消默认输出-e允许多项编辑-f指定sed脚本文件-i修改原文件-ruse extended regular expressions in the script.

  •   实例
命令功能sed -n '/word/p' filename将filename中所有包含word的行打印的屏幕上sed '1,3d' file1 >file2删除file1中1到3行,并将修改结果保存到file2中sed -n '1,5p' filename只打印1到5行sed '1,10s#my#your#g' filename将1至10行中的所有的my替换为yoursed '/my/!d' filename删除所有不含my的行sed '/reports/s/5/8' filename将含有reports行的第一个数字5改为8sed 's/....//' filename删除每行的前4个字符sed 's/....$//' filename删除每行的后4个字符sed -n '/word/w file2' flie1将file1中所有包含word的行写入file2中

运维网声明 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-557842-1-1.html 上篇帖子: Shell脚本小技巧 下篇帖子: 第 三 十 一 天:shell 脚 本 (一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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