sed相关
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来替换这个匹配上的子串。
最新文章
- 【腾讯Bugly干货分享】微信mars 的高性能日志模块 xlog
- Unix时间戳
- Python魔法 - MetaClass
- java for 的用法总结
- 控制反转(Ioc)和依赖注入(DI)
- javascript权威指南笔记--javascript语言核心(六)
- python 函数性能分析
- Java虚拟机的启动与程序的执行
- 窗体 dialog 弹出时动画效果
- JavaBean和EJB的区别
- 杭电ACM 素数判定
- git团队合作开发流程
- luogu P1007 独木桥
- emacs命令记录
- 工作中常用的linux命令(2)
- 语法之进化论之lambda表达式
- c/c++ 继承与多态 静态调用与动态调用
- CY7C68013 USB接口相机开发记录 - 第二天:驱动修改
- SAP UI 搜索分页技术
- CentOS6.5安装python3.7
热门文章
- [开源] FreeSql AOP 功能模块
- TiKV 源码解析系列——Placement Driver
- UIView和UIImageView 旋转消除锯齿方法
- 【div+css】两个div,如何让内层的div在外层div中水平垂直居中
- web.xml文件的 xsd引用(或dtd引用)学习
- VS2010 MFC中 Date Time Picker控件的使用
- 手动脱Mole Box壳实战总结
- Python setup.py和MANIFEST.in文件
- props default 数组(Array)/对象(Object)的默认值应当由一个工厂函数返回
- HTTP基础(分析两个例子)