5、grep正则表达式

前端之家收集整理的这篇文章主要介绍了5、grep正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式

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

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


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

原文链接:https://www.f2er.com/regex/359186.html

猜你在找的正则表达式相关文章