文章目录
一、正则表达式
- 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,许多程序设计语言都支持利用正则表达式进行字符串操作,例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的,正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen
二、grep文本过滤命令
1、grep是什么
- grep的工作方式:在一个或多个文件中搜索字符串模板,如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名,搜索的结果被送到屏幕,grep可用于shell脚本,如果模板搜索成功返回0,不成功返回1,搜索文件不存在返回2,我们可以利用返回值做一些自动化的文本处理工作
2、grep 的格式
命令 | 含义 |
---|---|
grep root passwd | 搜索全文中的root |
grep ^root passwd | 搜索全文中以root开头的 |
grep root$ passwd | 搜索全文中以root结尾的 |
grep -i root passwd | 忽略大小写 |
grep -E “root/ROOT” passwd | 同时匹配多个条件 |
grep “root$” passwd -n | 过滤出以root结尾的,且排序 |
grep “root$” passwd -v | 过滤出以root结尾的,且排序 |
grep “root$” passwd -B1 | 过滤出以root结尾的行及其前一行 |
grep “root$” passwd -B1 | 过滤出以root结尾的行及其前一行 |
grep “root$” passwd -A1 | 过滤出以root结尾的行及其后一行 |
grep “root$” passwd -2 | 过滤出以root结尾的行及其前后2行 |
(1)grep root passwd 搜索全文中的root,grep属于贪婪模式的搜索和匹配,只要行中有root出现,它就会打印匹配的行,除非指定什么开头,什么结尾
(2)
grep -E “root|ROOT” passwd = grep root passwd | grep ROOT 加-E可以一次性加两个条件,不加-E就过滤两次
(3)grep -Ei “root” passwd -i 表示忽略大小写过滤
(4)grep -Ei “^root” passwd 过滤出以root开头的
(5)grep -Ei " root$" passwd 过滤出以root结尾的
(6)grep -Ei “^root |root$” passwd 过滤出以root开头和结尾的
(7) **grep -Ei “^root |root$” passwd -v**过滤出不以root开头和结尾的,-v表示取反
(7) grep -Ei “^root |root$” passwd -v |grep root 过滤出root居中的
(8)grep -Ei “^root |root$” passwd -n 过滤出以root开头和结尾的,且排序
(9)grep ROOT passwd -B1 过滤出ROOT所在行及其前一行
(10)grep ROOT passwd -A1 过滤出ROOT所在行及其后一行
(11)grep ROOT passwd -2 过滤出ROOT所在行及其前后2行
(11)grep ROOT passwd -1 过滤