shell编程之正则表达式与文本处理器

目录

一、正则表达式概念

1.1 正则表达式的定义

1.1-1 正则表达式组成:

1.2 正则表达式的层次

1.2-1 基础正则表达式元字符

1.2-2 扩展正则表达式元字符

二、grep

2.1 grep的查找格式

2.2 grep的常用选项

三、cut

3.1 cut的常见参数

四、sort

4.1 sort常见的参数选项

 五、uniq

5.1 uniq常用的选项

六、tr

tr的常用选项


一、正则表达式概念

正则表达式又称为规则表达式,在代码中经常简写为(regex、regexp、RE),计算机科学的一个概念。正则表达式通常用来检索、替换那些某个模式的文本。

正则表达式不止一种,而且 LINUX 中不同的程序可能会使用不同的正则表达式,如工具:grep、sed、awk、egrep

1.1 正则表达式的定义

正则表达式,又称正规表达式、常规表达式

使用字符串来描述,匹配一系列符合某个规则的字符串

正则表达式通常用于判断语句中,用来检查某一字符串是否满足某一格式

1.1-1 正则表达式组成:

普通字符:大小写字母、数字、标点符号及一些符号

元字符:在正则表达式中具有特殊意义的专用字符

元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定前导字符(就是位于元字符前面的字符)在目标对象中的出现模式

1.2 正则表达式的层次

1.2-1 基础正则表达式元字符

基础正则表达式是常用的正则表达部分

除了普通字符外,还有以下常见的元字符

  • \:转义字符,\!,\n等
  • ^:匹配字符串开始的位置,例如:^a、^the、^#
  • $:匹配字符串结束的位置,例如:word$
  • .:匹配除\n之外的任意字符,例如:go.d、g..d
常见的元字符(续)

*:匹配前面子表达式0次或者多次
例:goo*d、go.*d

[list]:匹配list列表中的一个字符
例:go[ola]d、[abc]、[a-z]、[a-z0-9]

[^list]:匹配任意不在list列表中的一个字符
例:[^a-z]、[^0-9]、[A-Z0-9]

\{n,m\}:匹配前面的子表达式n到m次,有\{n\}  \{n,\}  \{n,m\} 三种格式
例:go\{2\}d、go\{2,3\}d、go\{2,\}

1.2-2 扩展正则表达式元字符

扩展正则表达式是对基础正则表达式的扩充深化

扩展的元字符

+:匹配前面子表达式至少1次以上,例:go+d,将至少匹配1次o

?:匹配前面子表达式0次或者1次,例:go?d,将匹配gd或者god

():将括号中的字符串做为一个整体

例:(xyz)+,将匹配xyz整体1次以上,如xyzxyz

|:以或的方式匹配字条串

例1:good|food,将匹配good或者food

例2:g(oo|la)d,将匹配good或者glad

二、grep

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

2.1 grep的查找格式

grep 【选项】查找条件 目标文件

2.2 grep的常用选项

shell编程之正则表达式与文本处理器_第1张图片

例1:

例2:

例3:

例4:

例5:

例6:

例7:

三、cut

cut:列截取工具

cut名令从文件的每一行剪切字节,字符和字段并将这些字节、字符和字段写至标准输出

如果不指定File参数,cut命令将读取标准输入。必须指定-b、-c、-f标志之一

3.1 cut的常见参数

shell编程之正则表达式与文本处理器_第2张图片

例1:

shell编程之正则表达式与文本处理器_第3张图片

例2:

例3:

shell编程之正则表达式与文本处理器_第4张图片

四、sort

是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。例如数据和字符的排序就不一样

sort 【选项】参数

4.1 sort常见的参数选项

shell编程之正则表达式与文本处理器_第5张图片

例1:

shell编程之正则表达式与文本处理器_第6张图片 例2:

shell编程之正则表达式与文本处理器_第7张图片

例3:

shell编程之正则表达式与文本处理器_第8张图片

例4:

shell编程之正则表达式与文本处理器_第9张图片

 例5:

shell编程之正则表达式与文本处理器_第10张图片

 五、uniq

主要是用于去除连续的行

注意:是连续的行,所以通常和sort结合使用先排序使之变成连续的行再去掉相同的行,否则不连续的话不能执行去除重复的行

uniq【选项】参数

5.1 uniq常用的选项

shell编程之正则表达式与文本处理器_第11张图片

例1:

shell编程之正则表达式与文本处理器_第12张图片 

例2:

例3 :

例4:

shell编程之正则表达式与文本处理器_第13张图片

例5:

shell编程之正则表达式与文本处理器_第14张图片

 

六、tr

他可以用一个字符替换另一个字符。或者完全去除一些字符,也可以用它去除重复字符

tr【选项】SET1 [SET2]

tr的常用选项

-d:删除字符

-s:删除所有重复的字符,只保留一个

例1:

例2:

shell编程之正则表达式与文本处理器_第15张图片

例3:

shell编程之正则表达式与文本处理器_第16张图片

例4: 

shell编程之正则表达式与文本处理器_第17张图片

例5:

shell编程之正则表达式与文本处理器_第18张图片

 

 

你可能感兴趣的:(正则表达式)