当前位置: 首页 -  必威体育 - 正文

Linux在在文件中查找文本的Grep命令

2020-06-21 15:29 必威体育 苘迷73°c
A+ A-

使用[^]来匹配不在括号内的任何单个字符。下面的模式将匹配任何包含co(any_letter_except_l)a的字符串组合,如coca、cobalt等,但不匹配包含cola的行,

可以使用grep通过管道过滤命令的输出,并且只有与给定模式匹配的行才会打印在终端上。

仅显示文件名

搜索全词

gnu

例如,要找出哪些系统以用户www-data的身份在系统上运行,可以使用以下ps命令:

fi

搜索字符串时,grep将显示该字符串嵌入较大字符串中的所有行。

安静模式

$grep -i Zebra /usr/share/words

若要将匹配行数打印到标准输出,请使用-c(或 --count)选项。

$grep “co[^l]a” file.txt

sphagnum

-l选项通常与递归选项-R结合使用:

$grep -A 5 root /etc/passwd

例如,当搜索不带任何选项的Zebra时,以下命令将不显示任何输出,即有匹配的行:

[linuxidc@localhost ~/www.linuxidc.com]$grep “Gnome Display Manager” /etc/passwd

$grep -E -o ’(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\。(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\。(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\。(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)‘ file.txt

haproxy.conf

then

lignum

$grep -w gnu /usr/share/words

$grep gnu /usr/share/words

要转义下一个字符的特殊含义,请使用\(反斜杠)符号。

magnum

grep命令的语法如下:

但是,如果使用-i选项执行不区分大小写的搜索,则它将同时匹配大小写字母:

例如,要在匹配行之前显示5行前奏上下文,可以使用以下命令:

OPTIONS - 零个或多个选项。 Grep包含许多控制其行为的选项。

输出

这是一个在安静模式下使用grep作为if语句中的测试命令的示例:

echo pattern not found

grep在一个或多个输入文件中搜索与给定模式匹配的行,并将每条匹配行写入标准输出。 如果未指定文件,则grep将从标准输入读取,该输入通常是另一个命令的输出。

默认情况下,grep将模式解释为基本的正则表达式,其中除元字符之外的所有字符实际上都是与自己匹配的正则表达式。

文字字符包括字母数字字符(a-z,A-Z和0-9)和下划线(_)。 所有其他字符均视为非单词字符。

zebra

要跟随所有符号链接,请使用-R选项(或--dereference-recursive),而不是-r。

如果使用扩展正则表达式选项-E,则不应转义运算符|,如下所示:

if grep -q PATTERN filename

-n(或--line-number)选项告诉grep显示包含与模式匹配的字符串的行的行号。 使用此选项时,grep将匹配项打印到以行号为前缀的标准输出。

Linux在在文件中查找文本的Grep命令

您也可以在命令中链接多个管道。 如您在上面的输出中看到的,还有一行包含grep进程。 如果您不希望显示该行,则将输出传递到另一个grep实例,如下所示。

[linuxidc@localhost ~/www.linuxidc.com]$ps -ef | grep www-data

interregnum

wingnut

[linuxidc@localhost etc]$ grep -n 10000 /etc/services

$grep Zebra /usr/share/words

echo pattern found

使用Grep过滤命令的输出

zebra‘s

可以使用OR运算符|将两个或多个搜索模式结合在一起。

lgnu9d

$grep “kangaroo$” file.txt

反转匹配(排除)

tmux.conf

输出将包含以文件的完整路径为前缀的匹配行:

$grep -B 5 root /etc/passwd

$grep -E ’fatal|error|critical‘ /var/log/nginx/error.log

$grep “kan..roo” file.txt

zebras