首页 > 代码库 > grep

grep

grep  ‘模式‘   文件
grep   [选项]  ‘模式‘   文件


选项
-n     显示被匹配到的内容所在的行号
-o     只显示被匹配到的内容
-v     取反,取匹配到行之外的外,

模式可以使用单引号,也可以使用双引号
一般我们就使用单引号





模式
1、可以一个明确的字符或者字符串
如:grep  ‘root‘   file           //会将含有root的行全部输出
    grep  -n   ‘root‘   file      //将含有root行输出,并打印行号
	



基本正则表达式,	
元字符
^      行起始标记                                  如^root匹配以root开头的行  
$      行尾标记                                    如root$匹配以root结尾的行
.      任意一个字符                                如wor.d能够匹配world,worad、worbd等,因为.能够匹配任意一个字符
[]     匹配包含在[字符]之中任意一个字符	           如a[ab]c能够匹配aac或abc
[^]    匹配[^字符]里面字符之外的任意一个字符       如a[^ac]c,能够匹配a.c,但是.不能够是a或者c,  能匹配 a1c 、a2c 、 afc等只要中间不是a或者c都可以
\      转义字符                                    可以将上面的无字字符进行转义,如‘\$‘可以忽略$的特殊意义
*      匹配之前的项0次或者多次                     如ft*  可以匹配f     ft     ftt     fttt        fttttttttttttttttt             

 

 

 

1、只查看文件中含有Listen的行

[root@localhost opt]# grep "Listen" httpd.conf -n

 

2、只查看文件中以Listen开头的行


[root@localhost opt]# grep "^Listen" httpd.conf -n

 


3、只查看以数字结尾的行


grep ‘[0-9]$‘

 

4、查看以<开头并且以>结尾的行

grep ‘^<.*>$’

 

5、查看文件中含有if或者If的行

grep ‘if‘ httpd.conf | grep ‘If‘ httpd.conf

 

 

6、不显示文件中以#号开头的所有内容

grep ‘^#‘ httpd.conf -v

 

 

7、不显示文件里的空白行


grep ‘^$‘ httpd.conf -v

 


8、使用ifconfig命令结合grep命令的方式,输出系统中所有的网卡


ifconfig | grep ^[a-z0-9]* -o

 

9、使用date命令结合grep的方式,输出系统中的时间

date | grep -o [0-9]:[0-9]:[0-9]

1、个人博客的文件,只输出学生姓名
cat 2 | sed ‘s/[a-zA-Z0-9[:punct:]]//g‘ | grep -v ‘^$‘

2、只输出每个学生的url
grep -o ‘[a-Z].*$‘ 2

3、只输出个人博客里的学号
grep -o ‘^[0-9].‘ 2

4、只输出个人博客中,两个字姓名的学生名

5、只输出每个人博客地址的最后一段,即.com/后面的一段内容
6、只输出最后一段全部是字母的
7、只输出最后一段含有大写字母的

 

grep