Linux Grep命令简介及实例

grep是一个过滤文本的工具 Linux操作系统 系统。我们可以得到一个特定的文本或寻找一个模式。grep是Linux管理员日常操作使用的工具。我们将在本教程中了解简单的用法类型。Grep可以用来在文件夹中查找单词。Grep的名字来自 /g/r/ep 表情。

中图】Grep :
| 月销量0件
优惠价140.14元
原价¥254.8

淘口令:

¥oERtXPn5Go7¥
 

在Linux中安装Grep

我们希望并期望大多数现代Linux发行版 默认情况下已安装grep。如果不是的话,就在这里

Ubuntu、Debian:

我们将使用 apt-get 安装命令 grep 工具。

$ sudo apt-get install grep -y

CentOS、Ubuntu:

我们将使用 dnf yum 为了安装 grep 包裹。

$ sudo dnf install grep -y

或者

$ sudo yum install grep -y

简单Grep一些文本 从文本文件

我们从grep的简单用法开始,从文件中获取一些文本。这是我们的文本文件test.txt

httpd-2.4.23.tar.bz2 httpd-2.4.23.tar.bz2.asc mytext.txt newtextfile nmap-7.31.tgz output2 percona-release_0.1-4.xenial_all.deb PNGGRAD8RGB2.PNG PNGGRAD8RGB3.PNG PNGGRAD8RGB4.PNG pnggrad8rgb.jpg pnggrad8rgb.png source.zip ssh_script test.zip thumb.png thumb.pnggrad8rgb.png thumb.thumb.png thumb.thumb.pnggrad8rgb.png thumb.thumb.thumb.png yourcommand

搜索 PNG 在名为 mytext.txt . 我们将首先提供PNG的名称,我们要搜索,然后文件或输入,我们将搜索。

$ grep PNG mytext.txt
Simple grep example
简单grep示例

grep搜索整个文件并提取提供文本“PNG”的行。匹配的部分也将以红色或类似颜色突出显示。

搜索字符串 不区分大小写

默认情况下,grep搜索区分大小写,这意味着大小写字符被解释为不同的。如果我们要找一个 主机名 在文件中,大小写并不重要,因此我们将关闭grep的大小写敏感度。我们将提供 -i 用于不区分大小写搜索的选项。

$ grep -i Thumb mytext.txt
Search Strings Case-Insensitive
搜索字符串 不区分大小写

正如我们所看到的,关闭区分大小写会为相同的文本产生更多的结果。

用Grep搜索递归

我们现在只搜索了一个文件。如果有数百个具有多级层次结构的文件,则逐个搜索是不可行的。所以递归搜索是最好的解决方案。我们将提供 -r 选项,它是 --recursive .

$ grep -r This
Search Recursive with Grep
用Grep搜索递归

这将 搜索 从当前路径开始递归向下。如果我们提供一条路径,它将从那里开始,如下所示。在下面的示例中,我们将搜索 This 整个Linux根文件系统中的术语。

$ grep -r This  /

用Grep搜索单词

到目前为止,我们一直在找一条短信。但是我们可以搜索一个用空格隔开的词。这将只搜索匹配的整个单词 test 在这种情况下。我们将使用 -w 选项并提供我们要搜索的单词,如下所示。

$ grep -w test mytext.txt

搜索行开始

我们可以用下面的命令寻找一行开始和行结束。我们将使用 ^ 作为行开始标记并提供我们要匹配的术语。在下面的示例中,我们从 t 信。

$ egrep  ^t  mytext.txt

搜索行尾

我们正在寻找以 g 性格。我们期待着行结束后控制字符 . 如果有空间,它将无法工作。我们将使用$作为行尾符号,并将字符放在此符号之前。

$ egrep  g$  mytext.txt

Grep中的反向匹配

到目前为止,我们已经搜索了现有的术语,但可以搜索不存在的术语。我们可以将此负匹配或反向匹配命名。我们将使用 -v 选择并提供我们不想匹配的术语。在下面的示例中,我们将列出不包含 p 信。

$ grep  -v p  mytext.txt
Search Non-Existing Text Lines in Grep
搜索Grep中不存在的文本行

我们正在寻找没有 p 性格。这也称为reverse regex,因为我们列出了搜索的负数。

相关文章: Pgrep和Pkill命令教程及Linux示例

在Grep中查找行号

如果我们在查看一些文本的上下两行,我们可以提供要显示的行数。它也会显示周围的线条。我们将使用 -nC 选项,其中包含要列出或显示的相邻行数。在下面的示例中,我们希望在匹配项周围显示一行,并提供1个like -nC1 作为一种选择。

$ grep -nC1 test.zip mytext.txt
Look for Line Number in Grep
在Grep中查找行号

仅显示文件名

通常grep会显示文件名和匹配的行。我们只能使用列出文件名 -l 选项。在下面的示例中,我们将列出包含术语的文件 This .

$ grep -r 'This' -l
Show Only File Names
仅显示文件名

这将列出具有此字符串的文件。我们正在递归搜索并列出文件名。

匹配给定的文件扩展名

我们只想grep在C头文件我们怎么能做到这一点?我们必须提供 –包括 带扩展名的参数。

$ grep -r --include *.h 'stdio' -l * /lib
Grep For Certain File Extensions
某些文件扩展名的Grep

只打印Grep匹配

我们可能只想得到匹配字符串。假设我们需要IP地址,只需要IP地址,其他什么都不需要。 -o 选项仅打印完全匹配的字符串

$ grep -o -E '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' /var/log/auth.log
Only Print Match of Grep
只打印Grep匹配

egrep命令

Egrep命令无效 grep -E 将扩展grep功能并提供正则表达式支持的版本。Grep有3种不同的模式类型。第一个是已知的基本概念 BRE 第二个扩展称为 ERE 第三个是 Perl PRCE . 下面我们来看看grep正则表达式支持的一些例子。下面是一些正则表达式运算符。这是我们的示例文本。我们将此文件命名为 myinput

pof tut com poftut.com poftut

? 使前面的项成为可选项,最多匹配一次。

$ egrep "of?" myinput

  • 使前一项匹配零次或多次
$ egrep "o*" myinput

  • 使前一项匹配一次或多次
$ egrep "o+" myinput

{n} 使前面的项在n次完全匹配

$ egrep "m{1}" myinput

{n,}使前面的项至少匹配n次

$ egrep "(com){1}" myinput

{,m}生成前面的项 最多匹配m次

$ egrep "(com){,1}" myinput

{n,m}使前面的项在最多m次时至少匹配n个

$ egrep "(com){1,1}" myinput

Grep和操作员

grep中没有专门的grep和操作符,我们将通过将多个grep管道连接在一起来模拟它,如下所示。

$ grep "om" myinput | grep "c"

逻辑运算可以用定义。

相关文章: Nmap输出

Grep或操作员

或者是一个逻辑操作,用于查找提供的项之一。我们将在文件中查找com或o字符串。或定义为 | .

$ grep "com|o" myinput
Grep Or Operator
Grep或操作员

如果我们想将它与带有正则表达式的egrep一起使用,那么可以使用pipe作为正则表达式grep操作符,如下所示。

$ egrep "(com){1,1}|o" myinput
Grep Or Operator
Grep或操作员

彩色Grep彩色输出

我们的grep可能会有很多结果。这很难检验。在这里着色将使我们的工作更容易。使grep结果丰富多彩 –颜色

$ grep --color t mytext.txt

排除不需要的字符串

我们可以从搜索中删除一个不需要的字符串,方法是使用下面的两个grep管道。首先,grep删除不需要的字符串。第二,grep是我们正常的搜索。

$ grep -v 'png' mytext.txt | grep 't'

计数字符串出现次数

我们可以计算字符串出现的次数。这将给出匹配字符串的总数。

$ grep -c 'png' mytext.txt
Introduction to Linux Grep Command With Examples Infographic
Linux Grep命令简介及示例信息图

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享