目录
一、正则表达式概念
正则表达式又称为规则表达式,在代码中经常简写为(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的常用选项
例1:
例2:
例3:
例4:
例5:
例6:
例7:
三、cut
cut:列截取工具
cut名令从文件的每一行剪切字节,字符和字段并将这些字节、字符和字段写至标准输出
如果不指定File参数,cut命令将读取标准输入。必须指定-b、-c、-f标志之一
3.1 cut的常见参数
例1:
例2:
例3:
四、sort
是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。例如数据和字符的排序就不一样
sort 【选项】参数
4.1 sort常见的参数选项
例1:
例2:
例3:
例4:
例5:
五、uniq
主要是用于去除连续的行
注意:是连续的行,所以通常和sort结合使用先排序使之变成连续的行再去掉相同的行,否则不连续的话不能执行去除重复的行
uniq【选项】参数
5.1 uniq常用的选项
例1:
例2:
例3 :
例4:
例5:
六、tr
他可以用一个字符替换另一个字符。或者完全去除一些字符,也可以用它去除重复字符
tr【选项】SET1 [SET2]
tr的常用选项
-d:删除字符
-s:删除所有重复的字符,只保留一个
例1:
例2:
例3:
例4:
例5: