目录
引言
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
1、正则表达式
1.1、正则表达式的定义
正则表达式,又称正规表达式、常规表达式,使用字符串来描述、匹配一系列符合某个规则的字符串正则表达式组成。
1.2、基础正则表达式元字符
基础正则表达式是常用的正则表达式部分,除了普通字符外,常见到以下元字符。
| 字符 | 含义 |
| \ | 转义字符,!、\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} |
1.3、扩展正则表达式元字符
| 字符 | 含义 |
| + | 匹配前面子表达式1次以上,列:go+d,将匹配至少一个o |
| ? | 匹配前面子表达式0次或者1次,列:go?d,将匹配gd或god |
| () | 将括号中的字符串作为一个整体,列:(xyz)+,将匹配xyz整体1次以上,如xyzxyz |
| l | 以或的方式匹配字条串,列1:good l food ,将匹配good或者food;列2:g(oo l la)d,将匹配good或者glad |
定位符
^ 匹配输入字符串开始的位置
$匹配输入字符串结尾的位置
非打印字符
\n匹配一个换行符
\r匹配一个回车符
\t匹配一个制表符
2、grep
grep命令使用正则表达式来搜索文本,并且把匹配的文本打印出来
| 常用选项 | 含义 |
| -c | 只打印匹配的文本行的次数,不显示文本内容。 |
| -i | 匹配时忽略字母大小写 |
| -h | 当搜索多个文件,不显示匹配文件名前缀。 |
| -l | 只列出含义匹配的文本行的文件的文件名,不显示其具体匹配的内容。 |
| -n | 列出所有匹配的文本行,并显示行号 |
| -s | 不显示关于不存在或无法读取文件的错误信息 |
| -v | 只显示不匹配的文本行,反向选择,显示与搜索字符串不相符的行。 |
| -w | 匹配整个单词 |
| -x | 匹配整个文本行 |
| -r | 递归搜索,不仅搜索当前目录,还有各级子目录 |
| -E | 开启扩展(extend)的正则表达式 |
示例


过滤网卡中的IP地址


3、元字符操作案例
3.1.查找特定字符
查找特定字符非常简单,如执行以下命令即可从 test.txt 文件中查找出特定字符“the”所在位置。其中“-n”表示显示行号、“-i”表示不区分大小写。命令执行后,符合匹配标准的字符, 字体颜色会变为红色。

3.2、利用中括号“[]”来查找集合字符



3.3、查找行首“^”与行尾字符“$”


3.4、查找任意一个字符“.”与重复字符“*”


3.5、查找连续字符范围“{}”



4、cut、sort、uniq、tr
4.1、cut:列截取工具
使用说明:cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一


4.2、sort:排序工具
sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。例如数据和字符的排序就不一样
| 常用选项 | 含义 |
| -t | 指定分隔符,默认使用[Tab]吧 键或空格分隔 |
| -k | 指定排序区域,哪个区间排序 |
| -n | 按照数字进行排序,默认是以文字形式排序 |
| -u | 等同于 uniq,表示相同的数据仅显示一行,注意:如果行尾有空格去重就不成功 |
| -r | 反向排序,默认是升序,-r就是降序 |
| -o | 将排序后的结果转存至指定文件 |
| -f | 忽略大小写,会将小写的字母都转换为大写字母来进行比较 |
| -b | 忽略每行前面的空格 |


4.3、uniq:去重工具
1、主要用于去除连续的重复行
2、注意:是连续的行,所以通常和sort结合使用先排序使之变成连续的行再执行去重操作,否则不连续的重复行他不能去重


4.4、tr:修改工具
它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符



总结
正则表达式grep
sort
uniq
tr
本文详细介绍了正则表达式的概念与基本元字符,展示了grep命令的使用实例,包括查找特定字符、集合字符、行首行尾匹配等。此外,还讲解了cut、sort、uniq和tr工具在文本处理中的应用,适合IT人员提升文本操作技能。
497

被折叠的 条评论
为什么被折叠?



