正则表达式,又称规则表达式。(Regular Expression),在代码中常简写为regex、regexp或RE。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式不只有一种,而且Linux中不同的程序可能会使用不同的正则表达式,工具:grep、sed、awk、egrep
1.1 正则表达式定义正则表达式,又称正规表达式、常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串
1.1.1 正则表达式组成- 普通字符:大小写字母、数字、标点符号及一些其他符号
- 元字符:在正则表达式中具有特殊意义的专用字符
元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
2 基础正则表达式元字符| 常见的元字符 | |
| 转义字符,!、n等 | |
| ^ | 匹配字符串开始的位置 |
| $ | 匹配字符串结束的位置 |
| . | 匹配除n之外的任意的一个字符 |
| * | 匹配前面子表达式0次或多次 |
| [ ] | 匹配列表中的一个字符 |
| [^ ] | 匹配任意不在列表中的一个字符(取反) |
| {n,m} | 匹配前面的子表达式n到m次,有{n}、{n,}、{n,m}三种格式 |
| + | 匹配前面子表达式1次以上 |
| ? | 匹配前面子表达式0次或者1次 |
| () | 将括号中的字符串作为一个整体 |
| | | 以或的方式匹配字条串 |
grep [选项] … 查找条件 目标文件
| 常用选项 | |
| -E | 开启扩展(Extend)的正则表达式 |
| -c | 计算找到 “搜寻字符串” 的次数 |
| -i | 忽略大小写的不同,所有大小写视为相同 |
| -o | 只显示被模式匹配到的字符串 |
| -v | 反向选择(反向查找,输出与查找条件不相符的行) |
| -n | 顺序输出行号 |
例1
方法一
方法二
例2
例3
例4
例5
例6
例7
3.2 cut(列截取工具)
cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字串写至标准输出
格式:cut [选项] 参数
| 常用选项 | |
| -b | 按字节截取 |
| -c | 按字符截取,常用于中文 |
| -d | 指定以什么为分隔符截取,默认为制表符 |
| -f | 通常和-d一起 |
例1
方法一
方法二
例2
例3
3.3 sortsort是一个以行为单位对文件内容进行排序的工具
格式:sort [选项] 参数
| 常用选项 | |
| -t | 指定分隔符,默认使用[Tab]键或空格分割 |
| -k | 指定排序区域 |
| -n | 按照数字进行排序,默认是以文字形式排序 |
| -u | 等同于uniq,表示相同的数据仅显示一行。(注意:如果行尾有空格去重就不成功) |
| -r | 反向排序,默认是升序,-r是降序 |
| -o | 将排序后的结果转存至指定文件 |
例1
例2
例3
3.4 uniquniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用
格式:uniq [选项] 参数
| 常用选项 | |
| -c | 对重复的行数进行计数 |
| -d | 仅显示重复行 |
| -u | 仅显示出现一次的行 |
例1
例2
3.5 tr常用来对来自标准输入的字符进行替换、压缩和删除。
格式:tr [选项] [参数]
| 常用选项 | |
| -d | 删除字符 |
| -s | 删除所有重复出现的字符,只保留一个 |
例1
例2
例3
例4
例5



