grep 正则表达式

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

grep ‘root’ /etc/passwd

-i 忽略字母大小写

--colour 加颜色 grep --colour ‘root’ /etc/passwd

-v 匹配到的行不显示,没有匹配到的显示

-o 只显示被匹配到的串,每个串显示为一行

-E 使用扩展正则表达式

-A #:显示其后#行

-B # 显示其前#行

-C # 显示其前后各#行

*:任意长度的任意字符

?: 任意单个字符

[]:

[^]:

a*b:匹配前面的a任意次

.*: 任意长度的任意字符

?: 匹配其前面的字符1次或0次(一般配合\?使用 )

\{m,n\}:匹配其前面的字符至少m次,至多n次


位置锚定:

^:此字符后面的任意字符必须出现在行首

grep ‘^root’ /etc/passwd

$:锚定行尾

grep ‘b..h$’/etc/passed匹配在passwd中以b开头,以h结尾的 ,中间有任意两个字符的行

^$:空白行

引用的时候用【】括起来

[:digit:]数字

[:lower:]小写字母

[:upper:]大写字母

[:punct:]标点符号

[:space:]空白字符

[:alpha:]所有字母

[:alnum:]所有数字和字母


\<:其后面的任意字符必须作为单词首部出现 等同于\b

\>:其前面的任意字符必须作为单词的尾部出现 等同于\b

例\<root\> 查找文本中root这个单词


\(\) :分组 多用于后项引用 用一个字符代替它

\(ab\)* ab可以出现一次零次或任意次

\1:引用第一个左括号以及与之对应的右括号所包含的所有内容

例:grep ‘\(l..e\).*\1’


扩展正则表达式:必须使用egrep 或者grep -E

字符匹配:

同上

次数匹配

*:

?:

+:其前字符至少一次

{m,n}:

分组:

():分组 不需要写斜线

或者:

| :or


例:找出/boot/grub/grub.conf 1-255之间的整数

grep --colour -E '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.comf


找IP地址:

\<[1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3]\>(\.\<([0-9]|[1-9][0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4])\>)\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]\>

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