shell之grep

grep的全称是global regular expression print,是linux中最强大的文本搜索命令之一,常用于搜索文本文件中是否含有某些特定模式的字符串。该命令以行为单位读取文本并使用正则表达式进行匹配,匹配成功后打印出该行文本。

grep
1.g r e p一般格式为:
grep [选项]基本正则表达式[文件]
这里基本正则表达式可为字符串。
8.1.1  双引号引用
在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如: “m y s t r i n g” 。这样做
有两个原因,一是以防被误解为 s h e l l命令,二是可以用来查找多个单词组成的字符串,例如:
“jet plane ” ,如果不用双引号将其括起来,那么单词 p l a n e将被误认为是一个文件,查询结果
将返回“文件不存在”的错误信息。
在调用变量时,也应该使用双引号,诸如: g r e p“$ M Y VA R”文件名,如果不这样,将
没有返回结果。
在调用模式匹配时,应使用单引号。
2 grep选项
常用的g r e p选项有:

-n  :显示行号
-o  :只显示匹配的内容
-q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc 
-A  :如果匹配成功,则将匹配行及其后n行一起打印出来
-B  :如果匹配成功,则将匹配行及其前n行一起打印出来
-C  :如果匹配成功,则将匹配行及其前后n行一起打印出来
--color
-c  :如果匹配成功,则将匹配到的行数打印出来
-E  :等于egrep,扩展模式匹配,例如要匹配"a|b"必须用扩展模式,grep -E "a|b" string,或者egrep
-i  :忽略大小写

-v  :取反,不匹配

-w:只匹配整个单词,而不是字符串的一部分

-h   在查找多个文件时,指示grep不要将文件名加入到输入之前

-s   哑模式. 执行其功能,但抑制所有输出

-x   只打印完全匹配模式的行

-r   递归查询目录下文件

这里还有些用于搜索的特殊符号:

\< 和 \> 分别标注单词的开始与结尾。

'^':指匹配的字符串在行首,

'$':指匹配的字符串在行尾,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值