Linux命令—egrep

作用:寻找匹配指定模式的文本.

命令格式

egrep Options "regex pattern" InputFile1 InputFile2 ...

egrep 等价于 grep -E.

示例输入:

[ming@localhost test]$ cat data.txt 
abcd123
456789
efgh123
987654
123abcd
[ming@localhost test]$ cat data1.txt 
abcd123
456789
efgh123
987654
[ming@localhost test]$ cat data2.txt 
abcd123
456789
efgh123
987654
[ming@localhost test]$ cat data3.txt 
123456
ABCD123

1. 输出匹配模式的行

[ming@localhost test]$ egrep "^[a-z]+" data.txt 
abcd123
efgh123

[ming@localhost test]$ egrep "[a-z]+" data1.txt data2.txt 
data1.txt:abcd123
data1.txt:efgh123
data2.txt:abcd123
data2.txt:efgh123

输出匹配行的行号:-n

[ming@localhost test]$ egrep -n "^[a-z]+" data.txt 
1:abcd123
3:efgh123

[ming@localhost test]$ egrep -n "[a-z]+" data1.txt data2.txt 
data1.txt:1:abcd123
data1.txt:3:efgh123
data2.txt:1:abcd123
data2.txt:3:efgh123

只输出匹配的行数:-c

[ming@localhost test]$ egrep -c "^[a-z]+" data.txt 
2

2. 只输出匹配模式的内容: -o

[ming@localhost test]$ egrep -o "^[a-z]+" data.txt 
abcd
efgh

3. 反向匹配: -v

输出不匹配的行、行数:

[ming@localhost test]$ egrep -v "^[a-z]+" data.txt 
456789
987654
123abcd

[ming@localhost test]$ egrep -vc "^[a-z]+" data.txt 
3

4. 输出包括匹配行的文件: -l

[ming@localhost test]$ egrep -l "[a-z]+" data1.txt data2.txt data3.txt
data1.txt
data2.txt

5. 输出不包括匹配行的文件: -L

[ming@localhost test]$ egrep -L "[a-z]+" data1.txt data2.txt data3.txt 
data3.txt

6. 忽略大小写: -i

[ming@localhost test]$ egrep -i "[a-z]+" data3.txt 
ABCD123

7. 指定多个模式: -e

[ming@localhost test]$ egrep -e "^[a-z]+" -e "[0-9]+" data3.txt 
123456
ABCD123

[ming@localhost test]$ egrep "^[a-z]+ | [0-9]+" data3.txt 
123456
ABCD123

8. 搜索目录

递归搜索目录下的文件:-r

[ming@localhost ~]$ egrep -r "^[a-z]+" test
...
test/data1.txt:abcd123
test/data1.txt:efgh123
test/data2.txt:abcd123
test/data2.txt:efgh123
test/main1.c:int main()
test/main2.c:int main()
test/data.txt:abcd123
test/data.txt:efgh123

排除指定的目录:--exclude-dir

[ming@localhost ~]$ egrep -r "^[0-9]+" . --exclude-dir ..
...
./test/data1.txt:456789
./test/data1.txt:987654
./test/data2.txt:456789
./test/data2.txt:987654
./test/data.txt:456789
./test/data.txt:987654
./test/data.txt:123abcd
./test/data3.txt:123456
./.vboxclient-clipboard.pid:2364
./.vboxclient-seamless.pid:2376
./.vboxclient-draganddrop.pid:2383
./.vboxclient-display-svga-x11.pid:2386

排除指定的文件:--exclude

[ming@localhost ~]$ egrep -r "^[a-z]+" test --exclude *.c --exclude *.cpp
...
test/data1.txt:abcd123
test/data1.txt:efgh123
test/data2.txt:abcd123
test/data2.txt:efgh123
test/data.txt:abcd123
test/data.txt:efgh123

只包含指定的文件:--include

[ming@localhost ~]$ egrep -r "^[a-z]+" . --include *.c --include *.cpp
./test/main1.c:int main()
./test/main2.c:int main()

9. 从文件中读取模式: -f

[ming@localhost test]$ cat patterns.re
^[a-z]+
^[0-9]+

[ming@localhost test]$ egrep -f patterns.re data.txt 
abcd123
456789
efgh123
987654
123abcd
7 声望
0 粉丝
0 条评论
推荐阅读
Python—文件系统操作
1. 路径操作查看路径是否存在: {代码...} 拼接路径: {代码...} 查看文件类型: {代码...} 2. 目录操作创建目录: {代码...} 删除目录: {代码...} 读取目录: {代码...} {代码...} 当前工作目录: {代码...} 拷...

gzming阅读 1k

工具篇:iTerm与Zsh
iTerm2支持许多的主题配色,可以自己定义,也可以参考网上现成的主题配色。我个人比较喜欢draculatheme配色。支持item,vim,phpstorm , 下方存在主题官网路径,按照教程安装即可。

super白4阅读 4.7k

麒麟操作系统 (kylinos) 从入门到精通 - 常用软件安装 - 第三篇 常用软件安装(windows下的习惯)
本篇内容大部分从应用商店进行安装,部分通过官网下载,少部分通过命令行安装。1.原生应用1.1钉钉1.2飞书1.3 蓝信1.4 腾讯文档1.5 金山文档1.6 搜狗输入法(拼音)1.7 五笔输入法1.8 libreoffice官方也带了WPS,...

码上世界3阅读 7.3k评论 17

封面图
深入剖析容器网络和 iptables
Docker 能为我们提供很强大和灵活的网络能力,很大程度上要归功于与 iptables 的结合。在使用时,你可能没有太关注到 iptables 的作用,这是因为 Docker 已经帮我们自动完成了相关的配置。

张晋涛3阅读 1.2k

封面图
Metasploit实现木马生成、捆绑及免杀
在一次渗透测试的过程中,避免不了使用到社会工程学的方式来诱骗对方运行我们的木马或者点击我们准备好的恶意链接。木马的捆绑在社会工程学中是我们经常使用的手段,而为了躲避杀毒软件的查杀,我们又不得不对木...

白风之下1阅读 9k

麒麟操作系统 (kylinos) 从入门到精通 - 办公环境 - 第十三篇 字体安装与windows字体的利用
正常情况下,系统下的wps或libreoffice用到的字体都已默认安装。但有时候一些ttf字体或者microsoft office下一些字体需要安装。我们可以在安装好office、acrobat之后,将C:\windows\Fonts文件夹中的字体(我是win...

码上世界2阅读 3.7k

封面图
麒麟操作系统 (kylinos) 从入门到精通 - 影音娱乐- 第三十篇 利用PKS观看电视台(IPTV)直播
类别:笔记本型号:中国长城 UF712硬件平台:飞腾处理器(ArmV8 指令集)系统:银河麒麟操作系统 V10 SP1(2203) 关键词:信创,麒麟系统,linux,PKS,银河麒麟,飞腾,arm64,arm,湖南卫视,中央电视台,电视直播,iptv

码上世界1阅读 3.7k

封面图
7 声望
0 粉丝
宣传栏