加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

5、grep正则表达式

发布时间:2020-12-13 22:07:33 所属栏目:百科 来源:网络整理
导读:正则表达式 用"一串符号"描述有共同属性的数据(用于过滤数据) 正则表达式 由正则符号组成 grep 作用就是在一堆数据里过滤自已想要的数据 格式 grep [选项] “正则表达式” 文件列表 (多个文件间用空格间隔) grep 'root' /etc/passwd /etc/shadow 命令 |

正则表达式

用"一串符号"描述有共同属性的数据(用于过滤数据)

正则表达式 由正则符号组成


grep 作用就是在一堆数据里过滤自已想要的数据


格式

grep [选项] “正则表达式” 文件列表 (多个文件间用空格间隔)

grep 'root' /etc/passwd /etc/shadow


命令 | grep [选项] ‘正则表达式’ | grep [选项] ‘正则表达式’

ps aux | grep 'httpd'


选项 可选的 不加选项时按默认方式处理数据

默认把与正则表达式匹配的数据输出到屏幕上


加选项的目的就是改变grep处理数据方式

正则表达式 必写项目

可以由普通字符数字符号组成 ""

如 grep root /etc/passwd

也可以由正则符号组成(元字符)''


文件列表 多个文件间用空格间隔

先把第一个文件中的所有行处理完,再处理下一个文件中的所有行


处理数据从前边的命令来,依次处理命令输出的每一行数据


grep命令的处理顺序

1、以行为处理单位

2、对数据进行逐行处理,处理完当前行自动处理下一行,直到把所有行处理完为止

3、默认输出有与正则表达式匹配数据的行,到屏幕上

4、不加选项,按默认方式处理数据


选项


--color 把与正则表达式匹配的数据标红显示

-n 输出与正则表达式匹配的行在文件中的行号

-c 统计与正则表达式匹配的行数

-q 屏蔽默认输出

-i 忽略字母大小写匹配

-v 输出与正则表达式不匹配的行

-E 去掉正则表达式里的转义符号


正则表达式由正则符号组成(元字符)


$ 匹配行尾 ^$空行

^ 匹配行首 ^# ^a ^awk 以a开头后面wk跟着


. 匹配除换行符(n)之外的任意单个字符

grep '.$' a.txt 显示以'.'结尾的行 需要加转义符号‘’


* 匹配前边的字符或正则表达式 出现的次数

grep 'go*d' abc.txt 前面是g后面是d,1个0出现0次或多次

grep 'gooo*d' test.txt 前面是goo后面是d,1个0出现0次或多次

grep 'go.d' abc.txt '.'显示任意一个字符

()把正则表xt达式作为整体匹配

grep 'g(oo)*d' abc.txt //两个O出现零次到多次

grep -E 'g(oo)*d abc.txt' //-E去掉正则表达式里的转义符



.*匹配所有字符


| 或 grep 'root|daemon' /etc/passwd

grep -E 'root|daemon' /etc/passwd

grep -v -E '^$|^#' /etc/passwd


[]范围内匹配(匹配范围内的任意一个)出现的次数是一次

grep '[139]' test.txtxt 匹配指定的数字

grep -E '1|3|9' test.txt

grep '[0-9]' test. 匹配所有的数字


grep '[#_-]' test.txt 匹配#_-的行

grep '[#-_]' test.txt 匹配从#到_的行

grep '[?!_-]' test.txt 范围内匹配字符


[awk] 匹配所有含有awk的行

[AWK] 匹配所有含有AWK所有的行

[a-z] 匹配所有的小写字母

[a-Z] 匹配所有的大写字母

[a-Z] 匹配所有的大小写字母

[a-zA-Z] 匹配所有的大小写字母

[a-Z0-9] 匹配所有数字和大小写字母


[^a-z]范围内取反


^[0-9] 以数字范围内开头的行

^[157] 以数字1开头以数字5开头以数字7开头


^[^a-z] 不以小写字母任意开头的行



设置正则表达式出现次数,匹配正则表达式出现次数的符号(加""转义)


* 匹配前边的正则表达式出现0次到多次 >=0

+ 匹配前边的正则表达式出现1次到多次 >=1

? 匹配前边的正则表达式出现0次到1次 <=1


{n,m}匹配前边的正则表达式出现指定的次数

{3} 匹配前边的字符或正则表达式出现2次 =3

{3,}匹配前边的字符或正则表达式至少出现2次 >=

{3,5}匹配前边的字符或正则表达式至少出现2次最多出现4次 >=3 and <=5


grep --color -E 'g(000){3}' test.txt 3个0出现3次

grep --color -E 'g0{1}d' test.txt 1个0出现1次

grep --color -E '[0-9]{3}' test.txt 0-9任意一个数字连着出现3次

grep --color -E 'go*d' test.txt 出现0次到多次

grep --color -E ‘go+d’test.txt 出现1次到多次

grep --color -E 'go?d' test.txt 出现0次到1次



&; 匹配单词的开头 grep --color "&;th" test.txt 不是转义符号必须存在

&; 匹配单词结尾 grep --color "m&;" test.txt


head httpd.conf | grep -i '&;th' --color 显示以th开头的

head httpd.conf | grep -i 'on&;' --color 显示以on结尾的



匹配MAC地址的正则表达式

00:0c:29:C1:C1:FF


0 1 2 3 4 5 6 7 8 9 A B C D E F

a b c d e f


[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-f]{2}:

[0-9a-fA-F]{2}



grep -E '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}' ifcfg-eth0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读