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\)*
后向引用
\2
He love his lover
She like her lover
He like his liker
She love her likerwq