1,grep:全面搜索研究正则表达式并显示出来 • grep 命令是一种强大的文本搜索工具 , 根据用户指定的“模 式”对目标文本进行匹配检查 , 打印匹配到的行,由正则表达式或者字符及基本文本字符所编写的过滤条件
grep (过滤)全面搜索研究正则表达式并显示出来
grep root passwd 将所有含有root的行显示出来
gerp ^root passwd 将以root开头的行显示出来
grep root$ passwd 将以root结尾的行显示出来
grep -i ^root passwd 忽略大小写将以root开头的行显示出来
grep -i root$ passwd
grep -i -E "^root|root$" passwd 把root开头或者结尾的都显示出来
-v 表示将符合条件的隐藏,反向
-E 扩展正则表达式,识别|或者的意思
grep 中字符的匹配位置设定
^关键字 以关键字为开头的都输出
关键字$ 以关键字为结尾的都输出
\<关键字
关键字>
\<关键字>
'r...t'匹配rt中间三个字符的
'r...' 匹配r后面三个字符的,满足条件包含其他字符的也显示
'r...\>'匹配r后面只有三个字符的
'...t'匹配t前面三个字符的
grep中字符的匹配次数设定
* 字符出现0-任意次
\? 字符出现0-1次
\+ 字符出现1-任意次
{
n\} 字符出现n次 前面的\表示转义,相当于-E
{
m,n\} 字符最少出现n次,最多出现m次 \表示防止做扩展搜索,做精确搜索
{
0,n\} 字符出现0-n次
{
m,\} 字符至少出现m次
{
(xy\){
n\} xy 关键字出现n次
*关键字之间匹配任意字符
试验
vim test
root
rt
rooooot
rooot
roooooot
rootrroot
rotroot
~
grep 'r..t' test
grep -E 'ro*t' test
grep -E 'ro?t' test
grep -E 'ro+t' test
grep -E 'ro{1,3}t' test
grep -E 'root' test
grep -E '(root){2,}' test root关键字出现两次的显示出来
grep -E "r..." test 将所有满足r后面存在5个字符以上的都输出
grep -E "r...\>" test 将r后面五个字符的输出,多余的屏蔽
grep -E "...t" test
grep -E "\<...t" 将t前面只有3个字符的输出