grep及正则表达式

来源:互联网 发布:大数据培训 达内就业 编辑:程序博客网 时间:2024/06/05 04:19

1.grep

:根据模式搜索文本,并将符合模式的文本行显示出来

2.Pattern

:文本字符和正则表达式的元字符组合而成匹配条件

3.grep 命令

   grep [options] PATTERN [FILE...]

            -i

            --color

            -v:显示没有被模式匹配到的行

            -o:只显示模式匹配到的字符串

            -E:使用扩展正则表达式  = egrep

            -A

            -B

            -C

4.正则表达式:

REGular EXPression,REGEXP

5.元字符:

.:匹配任意单个字符

[ ]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

       字符集和:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]


6.匹配次数(贪婪模式):

*:匹配其前面的字符任意次

b
ab
aab
acb
adb
amnb
amnbmnbmnbmnb          

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

\?:匹配其前面的字符1次或0次


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

找出文件中的,1位数,或2位数

grep '[0-9]\{1,2\}' /proc/cpuinfo

grep --color '\<[0-9]\{1,2\}\>' /proc/cpuinfo

找出ifconfig命令结果中的1-255之间的整数

ifconfig | egrep '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'

+:匹配其前面的字符至少1次(扩展正则)

显示/boot/grub/grub.conf文件中以一个或者多个空白字符串开头的行

grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf

grep  -E '^[[:space:]]+' /boot/grub/grub.conf

7.位置锚定

^:锚定行首,此字符后面的任意内容必须出现在行首

$:锚定行尾,此字符前面的任意内容必须出现在行尾

^$:空白行

\<或\b:锚定词首,其后面的任意字符必须作为单词的首部出现

\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现

This is root
The user is mroot
rooter is a dog's name
chroot is a command
mrootee is not a word


8.分组

\(\)

     \(ab\)*

     后向引用

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

     \2

He love his lover
She like her lover
He like his liker
She love her likerwq