正则表达式是对字符串操作的一种逻辑公式,通常被用来检索、替换那些符合某个规则的文本,在我们的实际工作中尤为重要。
- 通常用于判断语句中,用来检查某一字符串是否满足某一格式
- 正则表达式是由普通字符与元字符组成
- 普通字符包括大小写字母、数字、标点符号及一些其他符号
- 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
Linux 中常用的有两种正则表达式引擎
- 基础正则表达式:BRE
- 扩展正则表达式:ERE
常配合使用的工具:grep、sed、awk(Linux三剑客)
注:egrep,awk使用{n}、{n,}、{n,m} 匹配时“{}”前面不用加“”
egrep -E -n ‘wo{2}d’ test.txt1/-E用于显示文件中符合条件的字符
egrep -E -n ‘wo{2,3}d’ test.txt
定位符
- ^ 匹配输入字符串开始的位置
- $匹配输入字符串结尾的位置
非打印字符
- 匹配一个换行符
- 匹配一个回车符
- 匹配一个制表符
grep命令使用正则表达式来搜索文本,并且把匹配的文本打印出来
格式:
grep [options] pattern [file]
option表示选项,pattern表示匹配的模式。file表示一系列文件名。
- 统计包含某个字符的文本行的行数
- 不区分大小写查找指定字符所在行
- 将非空行行写入到文件中
- 过滤IP地址
“[]”中无论有几个字符, 都仅代表一个字符,也就是说“[sh]”表示匹配“s”或者“h”其中任意一个字符。
- 查找单个重复字符
- 查找oo前不是r的字符串
- 查找包含数字的行
- 过滤出以root开头的行
- “^”符号在元字符集合“[]”符号内外的作用是不一样的,在“[]”符号内表示反向选择,在“[]” 符号外则代表定位行首
- 可以使用“$”定位符查找以某一特定字符结尾的行
- 查询空白行
- 查找w开头d结尾的任意一个四位字符串
- 查找“w”开头“d”结尾,且包含0个以上“o”的字符串
- 查找“w”开头“d”结尾,包含任意字符的字符串
- 查找带有固定个数以上的某字符的字符串
- 查找带有范围数量某字符的字符串
- cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
- 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一
- cut只擅长于处理单个字符为间隔的文本,-b只能分割字母,-c既可以分割字母也可以分割中文
-
查看指定位置字节
- 查看指定位置字符
sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。例如数据和字符的排序就不一样。
格式:sort [选项] 参数
- 按字母排序
不加选项默认是字母排序,按a-z顺序排序
- 按数字排序
- 反向排序
-
去掉文件中重复的行
主要用于去除连续的重复行
注意:是连续的行,所以通常和sort结合使用先排序使之变成连续的行再执行去重操作,否则不连续的重复行他不能去重
- 统计连续的重复行的次数
- 结合sort使用过滤出重复行
- 过滤出不重复的行
- 将所有小写改成大写
- 一一替换出现的对应字母
- 可以使用特殊字符替换,也可以替换多个
- 当遇到单引号,使用双引号
- 删除所有o
- 删除出换行符
- 去重字符o,只保留一个
- 去除空行
- 查看登录用户
- 查看登陆过系统的用户
- 查看登录ip和使用者个数
- 查看客户端和监听服务个数