1 global flag

sed 's/xxx/xxx/' inputfile,如果没有带global flag g的话,匹配替换的只是inputfile中的每一行的第一个匹配项。如果带了g的话,才会全部都替换。

s命令替换的是行里面匹配了前面的模式的部分,也就是说,s是部分替换。

例子:MBA_students.txt
102,Jason Smith,IT Manager
103,Raj Reddy,Sysadmin
104,Anand Ram,Developer
105,Jane Miller,Sales Manager

sed 's/a/A/' MBA_students.txt

输出:
102,JAson Smith,IT Manager
103,RAj Reddy,Sysadmin
104,AnAnd Ram,Developer
105,JAne Miller,Sales Manager

sed 's/a/A/' MBA_students.txt

输出:

102,JAson Smith,IT MAnAger
103,RAj Reddy,SysAdmin
104,AnAnd RAm,Developer
105,JAne Miller,SAles MAnAger

2 使用-i选项编辑之后替换原文件

sed -i -e SCRIPT inputfile,这里一定要用-e,否则会出现unterminated substitute pattern。

3 使用\(..\)进行子串匹配

3.1 用于\n获取

匹配到的子串可以用\1,\2,\3来获取。

3.2 使得里面的模式为一个整体

\(abcd\)*,匹配0个或者多个abcd。

也就是说,\(\)里面的是一个模式就可以了,然后多个的话,从前到后用\1、\2可以获取,其它的没有影响。

4 多个模式连接

多个模式连着写就是多个模式一起匹配,一起处理。如果不是一起匹配的话,用\|,表示要么前者匹配,要么后者匹配,然后分别处理。

例子 \(error processing \)\(package \|archive \),匹配“error processing package ”或者匹配“error processing archive ”。

5 正则表达式匹配的长度是有限的

正则表达式匹配输入行,匹配结果的长度是有限的,即子串的长度是有限的。它会用replacement来替换这个匹配上的子串。

最新文章

  1. 【腾讯Bugly干货分享】微信mars 的高性能日志模块 xlog
  2. Unix时间戳
  3. Python魔法 - MetaClass
  4. java for 的用法总结
  5. 控制反转(Ioc)和依赖注入(DI)
  6. javascript权威指南笔记--javascript语言核心(六)
  7. python 函数性能分析
  8. Java虚拟机的启动与程序的执行
  9. 窗体 dialog 弹出时动画效果
  10. JavaBean和EJB的区别
  11. 杭电ACM 素数判定
  12. git团队合作开发流程
  13. luogu P1007 独木桥
  14. emacs命令记录
  15. 工作中常用的linux命令(2)
  16. 语法之进化论之lambda表达式
  17. c/c++ 继承与多态 静态调用与动态调用
  18. CY7C68013 USB接口相机开发记录 - 第二天:驱动修改
  19. SAP UI 搜索分页技术
  20. CentOS6.5安装python3.7

热门文章

  1. [开源] FreeSql AOP 功能模块
  2. TiKV 源码解析系列——Placement Driver
  3. UIView和UIImageView 旋转消除锯齿方法
  4. 【div+css】两个div,如何让内层的div在外层div中水平垂直居中
  5. web.xml文件的 xsd引用(或dtd引用)学习
  6. VS2010 MFC中 Date Time Picker控件的使用
  7. 手动脱Mole Box壳实战总结
  8. Python setup.py和MANIFEST.in文件
  9. props default 数组(Array)/对象(Object)的默认值应当由一个工厂函数返回
  10. HTTP基础(分析两个例子)