Linux-正则、grep、sed学习笔记

1、正则和grep

正则表达式的实现分红了两类: 基本正则表达式(BRE)和扩展的正则表达式(ERE)。正则表达式

BRE 和 ERE 之间有什么区别呢?这是关于元字符的问题。BRE 能够辨别如下元字符:spa

^ $ . [ ] *

其它的全部字符被认为是文本字符。ERE 添加了如下元字符(以及与其相关的功能):code

( ) { } ? + |

在 BRE 中,字符“(”,“)”,“{”,和 “}”用反斜杠转义后,被看做是元字符, 相反在 ERE 中,在任意元字符以前加上反斜杠会致使其被看做是一个文本字符。blog


grep默认使用BRE,egrep支持ERE, GNU 版本的 grep 程序在使用了-E 选项以后也支持扩展的正则表达式。input

 

基础正则表达式汇总:class

 

扩展正则表达式汇总:import

{ 和 } 元字符都被用来表达要求匹配的最小和最大数目。它们能够经过四种方法来指定:基础

 

正规表示法的特殊字节』与通常在命令列输入命令的『万用字节』并不相同, 例如,在万用字节当中的 * 表明的是『 0 ~ 无限多个字节』的意思,可是在正规表示法当中, * 则是『重复 0 到无穷多个的前一个 RE 字符』的意思,使用的意义并不相同。扩展

 

2、sed

sed 自己也是一个管线命令,能够分析 standard input ,并且 sed 还能够将数据进行取代、删除、新增、撷取特定行等等的功能。sed

 

 一、以行为单位的新增/删除功能

sed 后面接的动做,请务必以 ' ' 两个单引号括住。

若是只要删除第 2 行,可使用『 nl /etc/passwd | sed '2d' 』来达成, 如果要删除第 3 到最后一行,则是『 nl /etc/passwd | sed '3,$d' 』,『 $ 』表明最后一行。

 

若是是要在第二行前呢?『 nl /etc/passwd | sed '2i drink tea' 』

一次性添加多行,每一行之间都必需要以反斜线『 \ 』来进行新行的添加。

 

二、以行为单位的取代与显示功能

-n 为安静模式,只显示出被sed处理的行。

 

三、部分数据的搜寻并取代的功能

 

四、直接修改文件内容(危险动做)

相关文章
相关标签/搜索