博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
grep命令详解
阅读量:5814 次
发布时间:2019-06-18

本文共 4351 字,大约阅读时间需要 14 分钟。

linux中的grep命令主要用于全局搜索,grep家族有三个:grepegrepfgerp其中fgerp不支持正则表达式。如果需要搜素字符串,不需要使用元字符,可以用fgerp比较快,grep  文本过滤工具或文本匹配工具,能够实现根据指定的模式逐行搜索文件内容,并将匹配到的行显示出来。并不一定是全部匹配。可以与正则表达式的元字符,其他字符组成的匹配条件。

 

1、命令格式:

 

grep  [option] … ‘PATTERN’  文件名…………….    

[option]选项:
--color :显示颜色。
-v :显示没有被模式匹配到的行,取反。
-o :只显示被模式匹配到的字符串。
-i :不考虑大小写。
-n :顺便输出行号。

 

2、基本应用

 

[root@localhost ~]# grep -o "root" /etc/passwd 
[root@localhost ~]# grep 'dwzhang' /etc/passwd 
[root@localhost ~]# grep "\$?" ypbind 
[root@localhost ~]# grep 'dwzhang' /etc/passwd
[root@localhost ~]# grep 'cpu' /proc/cpuinfo   //只显示包含cpu的字符
[root@localhost ~]# grep --color=auto  'cpu' /proc/cpuinfo   
[root@localhost ~]# alias grep='grep --color'      
[root@localhost ~]# grep 'dwzhang' /etc/passwd
[root@localhost ~]# ifconfig | grep 'inet addr'   //只显示inet addr

3、结合cut搜索

 

[root@localhost ~]# grep 'dwzhang' /etc/passwd | cut -d: -f1
[root@localhost ~]# grep 'dwzhang' /etc/passwd | cut -d: -f2
[root@localhost ~]# ifconfig | grep 'inet addr' | cut -d: -f1
[root@localhost ~]# ifconfig | grep 'inet addr' | cut -d: -f2
[root@localhost ~]# ifconfig | grep 'inet addr' | cut -d: -f2 | cut -d' ' -f1

 

4、结合正则表达式元字符搜索

[root@localhost ~]# grep 'c.u' /proc/cpuinfo   //匹配c什么p,单个字符
[root@localhost ~]# grep --color 'c..' /proc/cpuinfo   
[root@localhost ~]# grep 'r..t' /etc/passwd
[root@localhost ~]# grep 'c..[a-z]' /proc/cpuinfo  //跟了任意2个字符,后面跟了a-z小写字母的
[root@localhost ~]# grep '^i' /etc/inittab  //i开头的行
[root@localhost ~]# grep 'w$' /etc/inittab  //行尾为w的行
[root@localhost ~]# grep 'b..h$' /etc/passwd   //b什么h结尾的
[root@localhost ~]# grep '\([0-9]\).*\1$' inittab
[root@localhost ~]# grep '^\([0-9]\).*\1$' inittab     
[root@localhost ~]# grep '^fpu' /proc/cpuinfo  //显示匹配的fpu开头的行
[root@localhost ~]# grep -A 2 '^fpu' /proc/cpuinfo  //显示匹配的行和下面的2
[root@localhost ~]# grep --color -B 2 '^fpu' /proc/cpuinfo  //显示匹配的行和上面的2
[root@localhost ~]# grep --color -C 2 '^fpu' /proc/cpuinfo //显示匹配的行和上下面的2   linux中的grep命令主要用于全局搜索,grep家族有三个:grepegrepfgerp其中fgerp不支持正则表达式。如果需要搜素字符串,不需要使用元字符,可以用fgerp比较快,grep  文本过滤工具或文本匹配工具,能够实现根据指定的模式逐行搜索文件内容,并将匹配到的行显示出来。并不一定是全部匹配。可以与正则表达式的元字符,其他字符组成的匹配条件。

 

1、命令格式:

 

grep  [option] … ‘PATTERN’  文件名…………….    

[option]选项:
--color :显示颜色。
-v :显示没有被模式匹配到的行,取反。
-o :只显示被模式匹配到的字符串。
-i :不考虑大小写。
-n :顺便输出行号。

 

2、基本应用

[root@localhost ~]# grep -o "root" /etc/passwd 
[root@localhost ~]# grep 'dwzhang' /etc/passwd 
[root@localhost ~]# grep "\$?" ypbind 
[root@localhost ~]# grep 'dwzhang' /etc/passwd
[root@localhost ~]# grep 'cpu' /proc/cpuinfo   //只显示包含cpu的字符
[root@localhost ~]# grep --color=auto  'cpu' /proc/cpuinfo   
[root@localhost ~]# alias grep='grep --color'      
[root@localhost ~]# grep 'dwzhang' /etc/passwd
[root@localhost ~]# ifconfig | grep 'inet addr'   //只显示inet addr

3、结合cut搜索

[root@localhost ~]# grep 'dwzhang' /etc/passwd | cut -d: -f1
[root@localhost ~]# grep 'dwzhang' /etc/passwd | cut -d: -f2
[root@localhost ~]# ifconfig | grep 'inet addr' | cut -d: -f1
[root@localhost ~]# ifconfig | grep 'inet addr' | cut -d: -f2
[root@localhost ~]# ifconfig | grep 'inet addr' | cut -d: -f2 | cut -d' ' -f1

 

4、结合正则表达式元字符搜索

[root@localhost ~]# grep 'c.u' /proc/cpuinfo   //匹配c什么p,单个字符
[root@localhost ~]# grep --color 'c..' /proc/cpuinfo   
[root@localhost ~]# grep 'r..t' /etc/passwd
[root@localhost ~]# grep 'c..[a-z]' /proc/cpuinfo  //跟了任意2个字符,后面跟了a-z小写字母的
[root@localhost ~]# grep '^i' /etc/inittab  //i开头的行
[root@localhost ~]# grep 'w$' /etc/inittab  //行尾为w的行
[root@localhost ~]# grep 'b..h$' /etc/passwd   //b什么h结尾的
[root@localhost ~]# grep '\([0-9]\).*\1$' inittab
[root@localhost ~]# grep '^\([0-9]\).*\1$' inittab     
[root@localhost ~]# grep '^fpu' /proc/cpuinfo  //显示匹配的fpu开头的行
[root@localhost ~]# grep -A 2 '^fpu' /proc/cpuinfo  //显示匹配的行和下面的2
[root@localhost ~]# grep --color -B 2 '^fpu' /proc/cpuinfo  //显示匹配的行和上面的2
[root@localhost ~]# grep --color -C 2 '^fpu' /proc/cpuinfo //显示匹配的行和上下面的2

 

例子:
1、显示文件去除掉空白行:
[root@localhost ~]# grep -v "^$" /etc/httpd/conf/httpd.conf
2、显示文件去除掉#注释行:
[root@localhost ~]# grep -v "#" /etc/httpd/conf/httpd.conf
3、显示去除掉注释行和空白行:
[root@localhost ~]# grep -v "#" /etc/httpd/conf/httpd.conf | grep -v "^$"

 

例子:
1、显示文件去除掉空白行:
[root@localhost ~]# grep -v "^$" /etc/httpd/conf/httpd.conf
2、显示文件去除掉#注释行:
[root@localhost ~]# grep -v "#" /etc/httpd/conf/httpd.conf
3、显示去除掉注释行和空白行:
[root@localhost ~]# grep -v "#" /etc/httpd/conf/httpd.conf | grep -v "^$"

本文转自信自己belive51CTO博客,原文链接: 
http://blog.51cto.com/11638205/1917198
,如需转载请自行联系原作者
你可能感兴趣的文章
Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
查看>>
MySQL 备份与恢复
查看>>
TEST
查看>>
PAT A1037
查看>>
(六)Oracle学习笔记—— 约束
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Scrum之 Sprint计划会议
查看>>
svn命令在linux下的使用
查看>>
Gradle之module间依赖版本同步
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...
查看>>
10g手动创建数据库
查看>>
Windwos Server 2008 R2 DHCP服务
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>
d3 v4实现饼状图,折线标注
查看>>
微软的云策略
查看>>
Valid Parentheses
查看>>
【ES6】数值的扩展
查看>>
性能测试之稳定性测试
查看>>