Linux之grep、egrep命令(文本三剑客完)

系列文章目录

第一章 正则表达式,一张表教你学会
第二章 Linux之awk的进阶使用
第三章 Linux之sed命令的基本使用
第四章 Linux之grep、egrep命令(文本三剑客完)



前言

大家可知道赫赫有名的文本三剑客?没错,它们就是grep、sed和awk,听说只要掌握了它们,就没有什么文本处理可以难倒你啦。
那在之前呢我已经发过了 sed 以及 awk 的使用教程感兴趣的小伙伴可以去看看呀。
言归正传,今天我们就把最后的 grep 以及其扩展 egrep 快速掌握吧


一、grep有什么用,和egrep是什么关系

grep命令全名为 Global search Regular Expression and Print out the line
而egrep则是其扩展版(Extended)
grep 命令是一个字符串和模式匹配的工具,它可以显示多个文件中匹配的行。它也可以用来处理其他命令的管道输出,经常用于需要过滤文本的场景

二、如何使用

1.语法

grep命令的基本语法是:

grep [options] pattern [files]

其中pattern是要搜索的字符串或正则表达式,files是要搜索的文件,如果省略则从标准输入读取。
options是一些可选参数

ps:正则表达式还不熟悉的同学可以看看我之前的 “一表学会正则” 哦

2.选项

-i 不区分大小写 --ignore

-n 显示行号 --line-number

-c 只显示匹配行的数量 --count

-r 递归搜索子目录中的文件 --recursive

-o 只匹配指定内容,输出也是指定内容 --only-match

$ cat index.html |grep -o "html"
html
html
html
html

-v 取反,显示不匹配的内容,整行匹配,与正则中的 " [^] " 的颗粒度不同 --invert-match

-A 多显示匹配内容之后的n行 --after

-B 多显示匹配内容之前的n行 --before

-C 多显示匹配内容前后的n行 --center

$ egrep -C1 "dad" rex.txt  # 多显示了dad上下各1行
abbbbb`
dad
wqq

3.egrep扩展了什么

egrep 等同于 grep -E
其主要是对正则表达式中增加了以下元字符:

  • | 表示或,例如 egrep ‘a|b’ 表示匹配a或b
  • + 表示一次或多次重复,例如 egrep ‘a+’ 表示匹配一个或多个a
  • ? 表示零次或一次重复,例如 egrep ‘a?’ 表示匹配零个或一个a
  • () 表示分组,例如 egrep ‘(ab)+’ 表示匹配ab的一个或多个重复
  • {} 表示出现次数,例如 egrep ‘a{3}’ 表示匹配a出现3次

在grep中使用它们不加-E的话,表达的则仅仅是其本身这个符号
从以下示例可以看出:

[root@localhost ~]$ echo abcbccc |grep "a(bc)+"	# 匹配失败
[root@localhost ~]$ echo abcbccc |egrep "a(bc)+"
abcbccc
[root@localhost ~]$ echo abcbccc |grep "abcbc{3}"	# 匹配失败
[root@localhost ~]$ echo abcbccc |egrep "abcbc{3}"
abcbccc
[root@localhost ~]$ echo abcbc{3} |grep "abcbc{3}"	# 匹配了{}本身
abcbc{3}

总结

以上就是今天要讲的内容,本文简单介绍了grep的使用,足以在日常中使用,而更复杂文本处理内容可以参考 awk 和 sed 的文章,有什么问题也欢迎大家评论和指正,感谢大家观看!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

只何

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

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

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

打赏作者

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

抵扣说明:

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

余额充值