Linux正则化与三剑客速成(二)——grep命令速览

目录

2.1grep常用选项及含义

grep -E:表示支持扩展的正则表达式

grep -A数字 :表示匹配内容及内容的后‘数字’行,例如

grep -B数字:表示匹配内容及内容之前的‘数字’行,例如

grep -C数字:表示匹配内容及内容上下的‘数字’行,例如:

grep -c :表示统计出现的相匹配的次数,类似于wc -l

grep -v:表示排除已经选择出来的内容 

grep -i :表示搜索的时候忽略大小写,例如 

grep -w:表示精确匹配,不显示大于匹配要求的行,仅显示正正好好的匹配结果,例如


2.1grep常用选项及含义

grep -E:表示支持扩展的正则表达式

grep -A数字 :表示匹配内容及内容的后‘数字’行,例如


[root@localhost ~]grep -A5 '川' sfz.txt
马小川 110105197806059190 
黄小波 110105197806059219 
何小涛 110105197806059230 
郭小江 110105197806059251 
胡小河 110105197806059272
郑小湖 110105197806059293

上述一共显示了6行,第一行含“川”,以及后五行的内容,这就是grep -A数字    的用法。

grep -B数字:表示匹配内容及内容之前的‘数字’行,例如

PowerShell [root@localhost ~] grep -B5 '川' sfz.txt
朱小云 110105197806059096
高小天 110105197806059116
林小海 110105197806059137
徐小山 110105197806059158
孙小石 110105197806059179
马小川 110105197806059190
--
曹小洋 110105197806059457
彭小流 110105197806059478
曾小溪 110105197806059499
肖小河 110105197806059518
田小谷 110105197806059539
樊小川 11010519780605955X

这里的内容六行为一组,最后一行都含“川”字,前面的5行表示搜索到的“川”前的五行内容。

grep -C数字:表示匹配内容及内容上下的‘数字’行,例如:

[root@localhost ~]# grep -C5 '川' sfz.txt 
朱小云 110105197806059096
高小天 110105197806059116
林小海 110105197806059137
徐小山 110105197806059158
孙小石 110105197806059179
马小川 110105197806059190
黄小波 110105197806059219
何小涛 110105197806059230
郭小江 110105197806059251
胡小河 110105197806059272
郑小湖 110105197806059293
--
曹小洋 110105197806059457
彭小流 110105197806059478
曾小溪 110105197806059499
肖小河 110105197806059518
田小谷 110105197806059539
樊小川 11010519780605955X

上述的文字匹配到“川”的前后各五行,所以11行为一组,“樊小川”为最后一行的话则不会匹配到后面的行。

grep -c :表示统计出现的相匹配的次数,类似于wc -l

使用grep 统计出现的次数
[root@localhost ~]# grep -c '川' sfz.txt 
2

grep -v:表示排除已经选择出来的内容 

搜索文本文档中不含‘川’的行
[root@localhost ~]grep -v '川' sfz.txt 
王小明 110105197806058930
李小华 110105197806058951
张小红 110105197806058972
刘小刚 110105197806058993
陈小强 110105197806059012
赵小丽 110105197806059033
周小芳 110105197806059054
吴小东 110105197806059075
朱小云 110105197806059096
高小天 110105197806059116
林小海 110105197806059137
徐小山 110105197806059158
孙小石 110105197806059179
黄小波 110105197806059219
何小涛 110105197806059230
郭小江 110105197806059251
胡小河 110105197806059272
郑小湖 110105197806059293
梁小海 110105197806059312
谢小溪 110105197806059333
宋小泉 110105197806059354
唐小潭 110105197806059375
许小泊 110105197806059396
邓小湖 110105197806059415
冯小海 110105197806059436
曹小洋 110105197806059457
彭小流 110105197806059478
曾小溪 110105197806059499
肖小河 110105197806059518
田小谷 110105197806059539

-c与-v的命令常常搭配使用,例如我们在使用查找进程的时候不需要将‘查找进程’这条命令也查出来需要进行过滤操作。

原始命令如下:ps + grep 容易把命令本身也查出来,要进行过滤,原始命令如下

[root@localhost ~]# ps -ef | grep crond
root        725      1  0 06:16 ?        00:00:00 /usr/sbin/crond -n
root      30081 118191  0 13:00 pts/0    00:00:00 grep --color=auto crond

[root@localhost ~]# ps -ef | grep -c crond
2

上述的命令中的输出结果的第二行root      30081 118191  0 13:00 pts/0    00:00:00 grep --color=auto crond为筛选出来的命令本身,我们如果不需要的话可以使用如下方法

使用ps -ef | grep crond | grep -v grep查出来关于crond的进行且过滤掉grep本身这条进程

ps -ef | grep crond | grep -v grep
root        725      1  0 06:16 ?        00:00:00 /usr/sbin/crond -n



如果还需要计数的话可以像如下这样:
[root@localhost ~] ps -ef | grep crond | grep -v grep | wc -l
1
或者
[root@localhost ~] ps -ef | grep crond | grep -v grep | grep -c crond
1
注意格式:先查所有的进程,再搜索关于crond的进程,排除命令本身,排除完成之后重新计数,顺序乱一个都不行!

ps -ef | grep crond | grep -v grep命令分析:


ps -ef:显示进程
grep crond :显示进程中关于定时任务的进程
grep -v grep:排除结果中的搜索命令grep本身的内容。

grep -i :表示搜索的时候忽略大小写,例如 

可以不区分大小写的方式匹配出所有的内容 

grep -w:表示精确匹配,不显示大于匹配要求的行,仅显示正正好好的匹配结果,例如

#原先的查找方法满足条件及以上都可以
[root@localhost ~]echo nihao nihaohao nihaohaohao ninihaohao | grep nihao
nihao nihaohao nihaohaohao ninihaohao


#当使用了-w进行精确匹配仅能匹配上满足条件的内容,具体如下
[root@localhost ~]echo nihao nihaohao nihaohaohao ninihaohao | grep -w nihao
nihao nihaohao nihaohaohao ninihaohao


#也可以使用\b选项划分界限完成精确匹配
[root@localhost ~]echo nihao nihaohao nihaohaohao ninihaohao | grep  '\bnihao\b'
nihao nihaohao nihaohaohao ninihaohao

#或者使用<>符号进行精确匹配,注意需要添加上转移符号
[root@localhost ~]#  echo nihao nihaohao nihaohaohao ninihaohao | grep  '<nihao>'**

nihao nihaohao nihaohaohao ninihaohao**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

害羞的白菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值