前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux grep 命令用法

Linux grep 命令用法

作者头像
棒棒鸡不棒
发布2022-09-01 13:12:16
7.2K0
发布2022-09-01 13:12:16
举报
文章被收录于专栏:文鹃阁文鹃阁

今天写一下 Linux 常用的命令之 grep 命令,经常用 Linux 的人肯定知道这个命令的强大之处, 俗话说

Grep is your friend

grep 的全称是 Global Regular Expression Print , 顾名思义,将全局正则表达式搜索的内容打印出来。这是个强大的文本搜索工命令,我开始用的时候感觉跟一般编辑器的 Ctrl+F 功能差不多,其实它的功能牛逼多了,它可以在一个或者多个文件中搜索字符串模板,或者是正则表达式,然后将匹配到的行输出在屏幕上。一般用于筛选出特定的字符,配合正则表达式使用的话更加灵活。

它的命令格式如下

代码语言:javascript
复制
$ grep [option] pattern file1 [file2]...

常用的几个 option 有 -f -n -c -l -i ,更多的可以去看手册,下面我们用几个例子讲解一下 grep 的一些用法 ,假设我们现在有两个文本文件 file1, file2

代码语言:javascript
复制
$ cat file1.txt
Fred apples 20
Susy oranges 5
Mark watermellons 12
Robert pears 4
Terry oranges 9
Lisa peaches 7
Susy oranges 12
Mark grapes 39
Anne mangoes 7
Greg pineapples 3
Oliver rockmellons 2  Mellon
Betty limes 14
代码语言:javascript
复制
$ cat file2.txt
Alice peaches
Susan grapes
Jack pineapples
Robert pears
Lucy watermellons
Jennifer apples
Oliver oranges
William mangoes
Bill oranges

0x01

代码语言:javascript
复制
$ grep mell file1.txt
Mark watermellons 12
Oliver rockmellons 2  Mellon

直接用 grep 在 file1.txt 里面搜索 mell 关键字,可以看到,输出了两行,说明在 file1.txt 中有两行符合匹配规则。

0x02

代码语言:javascript
复制
$ grep mell file1.txt file2.txt
file1.txt:Mark watermellons 12
file1.txt:Oliver rockmellons 2  Mellon
file2.txt:Lucy watermellons

这回我们同时在两个文件中搜索,输出时会带上匹配结果所在的文件号。

0x03

代码语言:javascript
复制
$ grep -n mell file1.txt file2.txt
file1.txt:3:Mark watermellons 12
file1.txt:11:Oliver rockmellons 2  Mellon
file2.txt:5:Lucy watermellons

-n 选项会输出匹配结果所在的行号,方便快速定位。

0x04

代码语言:javascript
复制
$ grep -c mell file1.txt file2.txt
file1.txt:2
file2.txt:1

-c 选项可以输出模式被匹配的次数, c 就相当于 count。

0x05

代码语言:javascript
复制
$ grep -i MELL file1.txt file2.txt
file1.txt:Mark watermellons 12
file1.txt:Oliver rockmellons 2  Mellon
file2.txt:Lucy watermellons

-i 选项可以忽略匹配模式的大小写,默认是要区分大小写的。

0x06

代码语言:javascript
复制
$ grep -e mell -e apple file1.txt file2.txt
file1.txt:Fred apples 20
file1.txt:Mark watermellons 12
file1.txt:Greg pineapples 3
file1.txt:Oliver rockmellons 2  Mellon
file2.txt:Jack pineapples
file2.txt:Lucy watermellons
file2.txt:Jennifer apples

-e 选项可以在一条 grep 语句里面查找多个模式。

0x07

现在我们新建了一个文件名叫 pattern

代码语言:javascript
复制
$ cat pattern
mell
apple
代码语言:javascript
复制
$ cat file1.txt | grep -f pattern
Fred apples 20
Mark watermellons 12
Greg pineapples 3
Oliver rockmellons 2  Mellon

-f 选项可以在文件中读取匹配模式用于匹配。

0x08

代码语言:javascript
复制
$ cat file1.txt file2.txt | grep -E "^L"
Lisa peaches 7
Lucy watermellons

-E 选项将后面的选项作为一个扩展的正则表达式来用,在本例中就是匹配的 L 开头的行,其实用 -e 也能实现相应的效果,但是 -E 选项不能匹配多个模式,具体的还是得多用才知道。

上面的几个选项有些是可以叠加在一起用的,有时会报错可能是因为顺序不对,例如 grep -nf 可以用,但是 grep -fn 就会报错

更加全面的关于 grep 命令的介绍可以看这篇文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01
  • 0x02
  • 0x03
  • 0x04
  • 0x05
  • 0x06
  • 0x07
  • 0x08
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档