sed用法的小技巧

(1)在查找范围时不需要用到替换,所以不用s;

(2)当只需要打印被修改行时,可以使用-n 和 –p 选项,注意二者一定配合使用;

3种方式指定命令行上的多重指令

(1)用逗号分隔指令;

(2)在每个指令前放置-e

(3)输入单分号后敲击return

删除: d命令

$ sed '2d' example-----删除example文件的第二行。

$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。

$ sed '$d' example-----删除example文件的最后一行。

$ sed '/test/'d example-----删除example文件所有包含test的行。

替换: s命令

$ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,

则只有每行第一个匹配的test被替换成mytest。

$ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。

也就是说,如果某一行开头的test被替换成mytest,就打印它。

$ sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换字符串中被找到的部份。

所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。

$ sed -n 's/\(love\)able/\1rs/p' example-----love被标记为1,

所有loveable会被替换成lovers,而且替换的行会被打印出来。

$ sed 's#10#100#g' example-----不论什么字符,紧跟着s命令的都被认为是新的分隔符,

所以,“ #” 在这里是分隔符,代替了默认的“ /” 分隔符。表示把所有10替换成100。

选定行的范围:逗号

注意:【在查找范围时不需要用到替换,所以不用s.】

$ sed -n '/test/,/check/p' example-----所有在模板test和check所确定的范围内的行都被打

印。

$ sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所

有行。

$ sed '/test/,/check/s/$/xiong test/' example-----对于模板test和check之间的行,每行的末

尾用字符串xiong test替换。

从文件读入:r命令

$ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果

匹配多行,则file的内容将显示在所有匹配行的下面。

写入文件:w命令

$ sed -n '/test/w file' example-----在example中所有包含test的行都被写入file里

$ sed '1,2 w filedt' quote.txt------quote.txt文件中的前2行写入到文件filedt中;

追加命令:a命令

$ sed '/^test/a\\--->this is a example' example $ sed '/test/i\\

new line

-------------------------' example

如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。

下一个:n命令

$ sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替

换这一行的aa,变为bb,并打印该行,然后继续。

变形:y命令

$ sed '1,10y/abcde/abcde/' example-----把1--10行内所有abcde转变为大写,注意,正则表达

式元字符不能使用这个命令。

退出:q命令

$ sed '10q' example-----打印完前10行后,退出sed。

保持和获取: h命令和g命令

最新文章

  1. objective c实现配置文件+反射
  2. Tomcat jdbc pool配置
  3. CM3存储器系统
  4. HDU4712-----Hamming Distance------超级大水题
  5. jquery倒计时过几秒页面跳转 js倒计时
  6. jdk 环境变量配置方法总结
  7. IE下判断IE版本的语句...[if lte IE 8]……[endif]
  8. Android初级教程:如何自定义一个状态选择器
  9. procotol.go 源码阅读
  10. 大受喜欢安卓触控一体机连接云端数据化管理提供例程DEMO
  11. java 安装教程
  12. [HEOI2016/TJOI2016]排序
  13. Android开源框架源码分析:Okhttp
  14. 关于SqlServer2008小记(查询数据库连接数,强行干掉连接)
  15. 第87讲:scala中使用For表达式做查询
  16. 导入数据库备份报错1067 – Invalid default value for ‘create_time’
  17. ASP.NET MVC 向浏览器发送文件以提供文件下载功能
  18. WordPress跳过语言包加载提高效率
  19. Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为?
  20. org.hibernate.MappingException: An association from the table order_intem_inf refers to a unmapped

热门文章

  1. 递推DP HDOJ 5092 Seam Carving
  2. 贪心 HDOJ 5090 Game with Pearls
  3. 阻止默认行为是配合passive使用
  4. AO-XXXX
  5. Problem D: 勤奋的涟漪2 dp + 求导
  6. PMP项目管理学习笔记(7)——整合管理之指导和管理项目执行过程
  7. flask_SQLAlchemy 中常用的过滤和执行器
  8. oracle的系统表
  9. 世平信息(W 笔试)
  10. python基础一 day2