前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速理解linux流编辑器sed命令

快速理解linux流编辑器sed命令

作者头像
dys
发布2018-04-03 11:57:19
1.1K0
发布2018-04-03 11:57:19
举报
文章被收录于专栏:性能与架构

之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写,是一种非交互式的流编辑器,默认情况下,sed并不会改变原文件本身,而只是对文本流进行修改,并将修改后的结果打印到标准输出中 与awk命令一样,sed处理文本时也是以行为单位,每处理完一行就立即打印出来,然后再处理下一行,直至全文处理结束 sed可做的编辑动作包括删除、查找替换、添加、插入、从其他文件中读入数据等 常用场景 (1)shell脚本中不便使用vi命令对文件进行编辑,sed命令则很方便 (2)文件太大,用vi编辑器打开文件有性能问题,就可以使用sed命令编辑 (3)有规律的文本修改,例如全文替换,使用sed命令非常快速 命令格式 sed [options] 'command' file options 是参数 command 是命令集合 file 是要编辑的文件路径 下面通过一些例子来了解sed的基本用法 (1)删除 d 命令用来删除 $ sed '1d' Sed.txt 将Sed.txt的第一行删除后输出到屏幕 由于sed默认不修改原文件,如果希望保存修改后的文件则需要用重定向 $ sed '1d' Sed.txt > Sed2.txt 如果想直接修改文件,使用-i参数 $ Sed -i '1d' Sed.txt 这里不会有任何输出,而是直接修改了源文件,删除了第一行 删除指定范围的行 $ sed '1,3d' Sed.txt 删除第一行到最后行 $ sed '1,$d' Sed.txt 删除最后一行 $ sed '$d' Sed.txt 删除除指定范围以外的行(只保留第5行) $ sed '5!d' Sed.txt 删除所有包含abc的行 $ sed '/abc/d' Sed.txt /abc/ 是指定搜索条件 (2)查找替换 s 命令用来查找替换 $ sed 's/abc/ABC/' Sed.txt 替换Sed.txt中每行的第一个abc为ABC 也可以指定替换的个数,如想替换两个 $ sed 's/abc/ABC/2' Sed.txt 利用g选项,可以完成所有匹配值的替换 $ sed 's/abc/ABC/g' Sed.txt /.../ 内部可以接收正则表达式,例如替换abc开头的 $ sed 's/^abc/ABC/' Sed.txt (3)插入文本 i 命令可以在匹配行之前插入 a 命令可以在匹配行之后插入 在第二行前插入文本 $ sed '2 i test' Sed.txt 在第二行后插入文本 $ sed '2 a test' Sed.txt 也可以在匹配行的上一行插入内容 例如在匹配到abc的行的上一行插入 $ sed '/abc/i\test' Sed.txt (4)打印 使用 p 命令可进行打印,这里使用sed命令时加 -n 参数,表示不打印没关系的行 打印出文件中的第一行 $ sed -n '1p' Sed.txt 使用p命令,只打印实际处理过的行,简化输出 $ sed -n 's/abc/ABC/p' Sed.txt

这个命令先替换abc为ABC,然后只打印出替换过的行

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档