Linux常用命令之grep命令

-----------grep命令-----------
说明:
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。

1.例:

grep -c 'root' 1.txt        
#显示含有root的行的数量。

grep -n 'root' 1.txt        
#显示root匹配的行和行号。       

grep -o 'root' 1.txt |wc -l   
#显示文本中含有root的个数。

grep -v 'root' 1.txt            
#显示不包含root的行。

grep -A2 -n 'root' 1.txt      
#显示包含root的行和行号,并显示其包含行下面的两行。

grep -B2 -n 'root' 1.txt      
#显示包含root的行和行号,并显示其包含行上面的两行。

grep -C2 -n 'root' 1.txt      
#显示包含root的行和行号,并显示其包含行上下的两行。

grep -r 'root' /etc/            
#搜索/etc/目录下的所有文件,包含root的关键字的文件行。

grep '[0-9]' 1.txt             
#把含有0到9数字的行显示出来。

grep -n 'n$' 1.txt            
#显示以n结束的行。    //为什么是$符号,用 cat -A 1.txt查看文件就知道了。

grep -v '^#' 1.txt            
#去除以'#'开头的行。

grep -v '^$' 1.txt | grep -v '^#'  
#去除所有空行且以'#'号开头的行。

grep -n '^[a-zA-Z]' 1.txt            
#显示以小写或大写英文字母开头的行。

grep -n '[^a-z]' 1.txt            
#显示包含非小写字母的行。

grep -n '^[^0-9]' 1.txt            
#显示以非数字开头的行。

注意:^当其在[]里面时候,表示非; 其他表示以什么开头。

2. * . ? {} \ 正则中特殊符号使用。

grep -n 'ro*t' 1.txt            
#显示匹配rt,rot,root,rooooot等字符的行。此时o*是一个整体,表示允许0个或多个o的存在。

grep -n 'ro.t' 1.txt            
#显示ro和t之间有一个字符(包括空格)的行。此时.表示任意字符。

grep -n -E 'ro?t' 1.txt        
#显示0个或1个o的字符行。此时o?是一个整体,表示0个或1个o ; 也可以写成 egrep -n 'ro?t' 1.txt。

grep -n -E 'ro+t' 1.txt      
#显示含有1个或多个o匹配的行。也可以写成 egrep -n 'ro+t' 1.txt。

3.总结:

*  0个或多个*前面的字符。
.   任意一个字符。
?  0个或1个?前面的字符。
+  1个或多个+前面的字符。
贪婪模式 .*
贪婪匹配: grep -n 'ro.*t' 1.txt   
#显示以ro开头t结尾的行。

grep 'root\|mysql' 1.txt    
#显示包含root或者mysql的行。

grep -E 'root|mysql' 1.txt  
#显示包含root或者mysql的行。

egrep 'root|mysql' 1.txt    
#显示包含root或者mysql的行。

grep -E '(oo)+' 1.txt           
#显示含有两个oo或多个oo的行。此时oo是一个整体。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执子之意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值