一、grep简介以及命令参数选项
二、正则表达式简介及元字符、字符集合
三、grep及正则表达式实例
-------------------------------------------------------------------------------------------------------------------
grep 简介
grep及正则表达式实例:
1 | [root@lgh01 ~]# grep --color=auto "root" /etc/passwd |
--color=auto 可将正确匹配的字符串以高亮红色显示。
例二:在/etc/passwd文件中查找以root开头的行,并将其显示。
1 | [root@lgh01 ~]# grep --color=auto "^root" /etc/passwd |
通过行首锚定符进行匹配,可以看出此次匹配的内容仅是以root开头的行。在其它位置出现不匹配。
1 | [root@lgh01 ~]# grep --color=auto "/bin/bash$" /etc/passwd |
通过行尾锚定符进行匹配,可以看出此次匹配的内容仅是以/bin/bash结尾的行。
1 | [root@lgh01 ~]# grep --color=auto ftp /etc/passwd |
大家注意到没有,此行还包含一个大写“FTP”字符串,这里没有匹配出来,从这个例子中可以看出,grep命令进行字符匹配是区分大小写字母的。
例五:在/etc/passwd文件中查找匹配ftp的行。不区分大小写。
1 | [root@lgh01 ~]# grep --color=auto -i ftp /etc/passwd |
大家看看和上一个命令的区别,就很容易发现,通过-i参数,不区分大小写进行匹配,所以大、小写的ftp都匹配出来了。
1 | [root@lgh01 ~]# grep --color=auto "\<bin\>" /etc/passwd |
通过词首"\<"、词尾"\>"锚定符进行字符串完全匹配。如果不使用词首词尾锚定符,会将类似/sbin字串一起匹配出来。
1 | [root@lgh01 ~]# grep --color=auto "\(ftp\).*\1" /etc/passwd |
ftp字符串以分组方式进行匹配,大家注意到命令中的\1,表示引用第一个分组的内容,如果字符串中有多个分组,可以用\2 \3进行引用第二分组及第三分组中的字符串。
1 | [root@lgh01 ~]# grep --color=auto 'o\{2,\}' /etc/passwd |
\{2,\} 匹配前面字符至少2次,表示o字符最少必须连续出现两次或三次或更多次,例:rooot 、spoooot、toooools等。
1 | [root@lgh01 ~]# grep '^#[[:space:]]\{1,\}[^[:space:]]*' /etc/rc.d/rc.sysinit |
1 | [root@lgh01 ~]# grep -v '^#' /etc/rc.d/rc.sysinit | grep -v '^$' |
1 2 | [root@lgh01 ~]# ip add list | egrep "[[:space:]]+inet[^6].*[^lo]$" 或 [root@lgh01 ~]# ifconfig | egrep "[[:space:]]+inet[^6].*" | grep -v 127.0 . 0.1 |
1 | [root@lgh01 ~]# ifconfig |egrep --color "\<([1-9]|[1-9][0-9]|1[0-1]+[0-9]+|12[^7]+|1[3-9]+[0-9]|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" |
Linux grep 命令功能、正则表达式先简单介绍到这里了,希望对大家有所帮忙,本篇博文后续还会继续更新,后续更新主要以实例为主。希望大家关注啊!