首页 php教程 PHP开发 grep 命令详解及相关事例

grep 命令详解及相关事例

Dec 13, 2016 pm 02:40 PM
grep

一.匹配字符

.    匹配任意单个字符

[ ]  匹配指定范围内的任意字符

[^]  匹配飞指定范围内的任意字符

[:alpha:] 字母字符

[:lower:] 小写字母字符

[:upper:] 大写字母字符

[:digit:] 数字

[:alnum:] 字母数字字符

[:space:] 空白字符(禁止打印),如回车符、换行符、竖直制表符和换页符

[:punct:] 标点字符

[:cntrl:] 控制字符(禁止打印)

[:print:] 可打印字符

使用时一般使用两个中括号,具体会在下面的例子中使用。

二.匹配次数

*      匹配前面的字符任一次

.*    匹配任意长度的任意字符(注意贪婪模式,比如  grep  “r.*t” /etc/passwd  )

x\{m,n\}  指定前面的字符至少出现m次,至多出现N次。

x\{m,\}    指定前面的字符至少出现m次

x\{0,n\}  指定前面的字符至多出现N次

x\{m\}    精确匹配m次

?        匹配其前面的字符0或1次

三.锚定符

1.^  锚定行首    grep  "^r..t"  /etc/passwd

2.$  锚定行尾    grep  "h$"  /etc/passwd

3.^$ 锚定空白行  grep  "^$"  /etc/passwd

4.\< (\b) 锚定词首 grep "\

5.\> (\b)  锚定词首    grep  "r..t\>"  /etc/passwd

示例(容易混淆):

至少包含一个空白字符          grep  "[[:space:]]\{1,\}"  /etc/passwd

至少包含一个非空白字符        grep  "[^[:space:]]\{1,\}"  /etc/passwd

没有一个空白字符              grep  -v "[^[:space:]]\{1,\}"  /etc/passwd

6.\(\)对字符分组  grep  "\(l..e\).*\1r"

示例:

grep --color "l\([13]\):\1:.*:\1"  /etc/inittab

四.选项

-v    对结果取反

-i    忽略字母大小写

-o    仅显示匹配到的字符串(行的其他内容不显示)

-E    支持扩展的正则表达式

-A n    显示匹配到的行下面n行

-B n    显示匹配到的行上面n行

-C n    显示匹配到的行上下面各显示n行

练习:

1.查找系统中user1用户的相关信息。(提前建好user11,myuser1)(易错)

grep "user1"  /etc/passwd    所有包含user1的行

grep "\"  /etc/passwd    表面可以,但是添加以下用户,就不可以了

useradd  -c  "user1's  uncle"  /etc/passwd  -c  是注释

grep "^\"  /etc/passwd    成功匹配

2.查找系统中以user开头后面跟了数字的用户的相关信息。

grep "^user[0-9]\{1,\}\>"  /etc/passwd

3.分析/etc/inittab 文件如下两行文本的特征,编写可以精确查到的类似两行的模式,

要求每行的数字必须相同。

l1:1:wait:/etc/rc.d/rc 1

l3:3:wait:/etc/rc.d/rc 3

grep "l\([13]\):\1:.*:.* \1"  inittab

扩展:匹配所有上述特征:grep "l\([0-9]\):\1:.*:.* \1"  inittab

如果超过10,需要添加最小匹配:grep "l\([0-9]\{1,\}\):\1:.*:.* \1"  inittab

4.显示/proc/meminfo文件中以不区分大小写的s开头的行

grep "^[sS]" /proc/meminfo

5.显示/etc/passwd中以nologin结尾的行

grep "nologin$" /etc/passwd

6.显示/etc/inittab中以#开头,且后面跟一个或者多个空白字符,而后又跟了任意非空白字符的行

grep "^#[[:space:]]\{1,\}[^[:space:]]"  /etc/inittab

7.显示/etc/inittab中包含了两个冒号中间一个数字的行

grep ":[0-9]:" /etc/inittab

8.显示/boot/grub/grub.conf 文件中以一个或者多个空白字符的行

grep ":[0-9]:" /etc/inittab

9.显示/etc/inittab文件中以一个数字开头并以一个开头数字相同的数字结尾的行。

grep "^\([0-9]\).*\1$"  /etc/inittab

10.显示/etc/inittab文件中非空白的行

grep -v  "^$"  /etc/inittab

11.取出当前网络接口的相关IP地址(不包含127.0.0.1)

ifconfig |grep "inet addr" |grep -v "127.0.0.1"| cut -d: -f2|cut -d" " -f1

ifconfig |grep -A 1 "eth" |grep -o "addr:[0-9.]\{1,\}"|cut -d: -f2

五.扩展正则表达式

与正则表达式不同之处:

\(\)替换为 ()

\{\}替换为 {}

+  次数匹配,匹配其前的额字符一次或者多次

|  或者

示例:

匹配ifconfig结果中出现数字为1-255之间的整数

ifconfig|grep --color -E "\<([1-9]|[1-9][0-9]|1[1-9][0-9]|2[0-5][0-5])\>"


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在Linux中使用grep命令进行日志分析? 如何在Linux中使用grep命令进行日志分析? Jul 29, 2023 pm 02:12 PM

如何在Linux中使用grep命令进行日志分析?引言:日志是系统运行过程中产生的重要记录,对于系统运维和故障排查来说,日志分析是一项必不可少的工作。在Linux操作系统中,grep命令是一种强大的文本搜索工具,非常适合用于日志分析。本文将介绍针对日志分析常用的grep命令的使用方法,并提供具体的代码示例。一、grep命令简介grep是Linux系统中的一款文

使用grep命令查询特定首尾文件内容的方法 使用grep命令查询特定首尾文件内容的方法 Jan 09, 2024 am 09:45 AM

LINUX系统中想要查看文件的内容,该怎么查看指定文件的首尾内容呢?下面我们就来看看使用grep查询指定首尾文件内容的教程。1、打开LINUX,这里我们可以用UBUNTU操作系统。2、找到左边任务栏的TERMINAL,打开终端窗口。3、grep后面加上^,就可以指定某一行的行首。4、grep后面的内容后面加上$,就可以指定某一行的行尾。5、^$可以同时使用,指定某一行首尾必须的内容。6、如果中间有一个字符缺失或者不正确,那么都会查询不到。7、配合-i使用就可以无视大小写的规则。8、还可以配合-v

介绍Linux下使用grep命令显示上下文信息的方法 介绍Linux下使用grep命令显示上下文信息的方法 Jan 04, 2024 pm 04:41 PM

本文研究的主要是Linux下grep显示前后几行信息的相关内容,具体如下。标准unix/linux下的grep通过下面参数控制上下文grep-C5foofile显示file文件里匹配foo字串那行以及上下5行grep-B5foofile显示foo及前5行grep-A5foofile显示foo及后5行查看grep版本号的方法是grep-V假设想升级,升级的方法:最新的源代码(google或者百度搜索主页),编译安装到某个地方,比方/home/aaa/bin/那么以后用的时候就用/home/aaa/

Linux系统中grep如何使用? Linux系统中grep如何使用? Feb 19, 2024 pm 03:54 PM

  在Linux中,grep是一个非常常见和重要的工具,是每一个专业运维工程师必须掌握的命令,因为通过它可以快速地查找和过滤文件中的内容,那么Linux系统中grep如何使用?下面是常见用法介绍,一起来看看吧。  1、基本用法grep命令主要用于在文件中搜索指定模式的行。例如,要在文件file.txt中查找包含"example"的行,可以使用grep命令来实现。  grep‘example’file.txt  grep将输出所有包含’example’的行。 

Linux grep命令的语法是什么 Linux grep命令的语法是什么 May 14, 2023 pm 10:43 PM

Linuxgrep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep指令会从标准输入设备读取数据。语法:grep参数:-a或--text:不要忽略二进制的数据。-A或--after-context=:除了显示符合范本样式的那一列之外,并显示该行之后的内容。-b或--byte-offset:在显示符合样式的那一行之前

Linux grep命令有何作用?如何使用? Linux grep命令有何作用?如何使用? Feb 19, 2024 pm 02:33 PM

  进行Linux系统维护的时候,想要在文本中快速搜索到你需要的东西,grep命令是非常不错的选择,它主要用于查找文件里符合条件的字符串,从而节省时间、提高工作效率。那么Linux系统中grep命令如何使用?我们一起来看看详细的内容介绍。  Linuxgrep命令用于查找文件里符合条件的字符串。grep指令用于搜索包含指定样式的文件内容,并显示包含该样式的行。如果未指定文件名,grep将从标准输入读取数据。grep是一种强大的文本搜索工具,可帮助用户快速定位关键信息。  语法  grep[-ab

linux中grep的用法有哪些 linux中grep的用法有哪些 Sep 05, 2023 am 11:01 AM

linux中grep的用法有基本用法、忽略大小写、正则表达式搜索、反向搜索、统计匹配行数、递归搜索、输出行号和从输入流中搜索等。详细介绍:1、基本用法,grep命令的基本用法是在文件中查找包含指定模式的行,在文件file.txt中查找包含"example"的行,可以执行该命令“grep "example" file.txt”;2、忽略大小写,默认情况下,grep区分大小写等等。

grep的正则用法 grep的正则用法 Nov 16, 2023 am 10:29 AM

grep的正则用法有:1、简单的匹配;2、基本正则表达式;3、元字符的使用;4、锚定字符的使用;5、字符类的使用;6、量词的使用。详细介绍:1、简单的匹配,使用grep命令后跟随要匹配的字符串;2、基本正则表达式,使用-E选项启用扩展的正则表达式功能;3、元字符的使用,在正则表达式中,可以使用一些元字符来表示特定的字符或字符集合;4、锚定字符的使用等等。

See all articles