linux sed正则查找字符串,shell(五)正则表达式、grep、awk、sed

  • Post author:
  • Post category:linux


正则表达式介绍

使用s h e l l时,从一个文件中抽取多于一个字符串将会很麻烦。例如,在一个文本中抽取一个词,它的头两个字符是大写的,后面紧跟四个数字。如果不使用某种正则表达式,在s h e l l中将不能实现这个操作。

正则表达式是一种可以用于模式匹配和替换的强大工具,我们可以在很多unix程序中找到正则表达式的身影,例如vi,perl,php,awk,sed,emacs,grep等。

正则表达式常见的应用场合:

1.验证用户输入是否合法,如验证“xxx@xxx.xxx”的规则,其中x字符是字母,数字,下划线,小数点或减号,邮件地址的每一部分可以有一个或多个字符。

2.验证IP地址是否符合“yyy.yyy.yyy.yyy”的规则,且每个地址段小于255

3.……

基本元字符集及其含义

^

只匹配行首

$

只匹配行尾

*

一个单字符后紧跟*,匹配0个或多个此单字符

[]

匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[ ]内字符序列范围,如用[ 1 – 5 ]代替[ 1 2 3 4 5 ]

\

只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有意义

.

只匹配任意单字符

p a t t e r n \ { n \ }

只用来匹配前面p a t t e r n出现次数。n为次数

p a t t e r n