shell中文本处理命令:grep命令

shell中的grep命令

1.什么是grep命令

在这里插入图片描述

2.grep命令的基本用法

参数 说明
-c 只输出匹配行的数量
-i 搜索时忽略大小写
-h 查询多文件时不显示文件名
-l 只列出符合匹配的文件名,而不列出具体的匹配行
-n 列出所有的匹配行并显示行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索,不仅搜索当前工作目录,并且搜索子目录
-q 禁止输出任何结果,以退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b选项结合使用,打印匹配词距文件头部的偏移量,以字节为单位
-E 支持扩展的正则表达式
-F 不支持正则表达式,按照字符串的字面意思进行匹配

3.使用grep命令的例子

1.grep:显示包含模式所有的行

grep root /etc/passwd	#过滤文件中含有root的行

在这里插入图片描述

2.-c:输出匹配字符串的行的数量

grep -c root /etc/passwd	#-c只输出匹配行的数量

在这里插入图片描述

3.-n:列出所有匹配的行并且显示行号

grep -n root /etc/passwd	#-n列出所有的匹配行并显示行号

在这里插入图片描述

4.-v:显示不包含模式的所有的行

grep -v root /etc/passwd	#-v显示不包含root的所有行

grep -vc root /etc/passwd	#显示不包含root的所有行的数量

在这里插入图片描述

5.-i:不区分大小写显示包含模式所有的行

grep -i root passwd		#搜索时忽略大小写

在这里插入图片描述

6.grep应用正则表达式查找

grep ro*t passwd		#应用正则表达式

在这里插入图片描述

7.-s:不显示错误的信息

grep root lalala #
grep -s root lalala		#-s不显示不存在或无匹配文本的错误信息

在这里插入图片描述

8.-r:不仅搜索当前目录,还递归搜索子目录

grep -r passwd /etc/		#查找/etc及其子目录中 所有包含passwd的文件 并打印出该字符串所在行的内容

在这里插入图片描述

9.-w:匹配整句(元字符不再被认定为特定的含义)

grep roo* passwd 
grep -w roo* passwd		#-w匹配整词

在这里插入图片描述

10.-x:匹配整行(只有文件中有某一整行的内容能匹配上时,grep才会输出该行的内容)

grep world test.txt 

grep -x world test.txt 	#-x匹配整行

在这里插入图片描述

11.-q:不会显示搜索结果,以退出状态表示搜索成功与否

grep -q -x world test.txt 	#-q不会输出任何结果,以退出状态表示是否搜索成功
echo $?

grep -q -x hello test.txt 
echo $?

在这里插入图片描述

4.正则表达式和grep结合的例子

1.查找空白行并打印行数

grep -c ^$ passwd		#查找空白行并打印行数

在这里插入图片描述

2.查找并非空白行的行并且只打印行数

grep -c ^[^$] passwd		#搜索非空行。能匹配开头就不是空行

在这里插入图片描述

3.不区分大小写

grep -n [Rr]oot passwd	#表示第一个字符可以是R或r后面三个字符为oot

在这里插入图片描述

4.和通配符结合

grep '[[:alpha:]]\{3\}t'  passwd #查找passwd文件中3个字母后跟t的行

在这里插入图片描述

发布了132 篇原创文章 · 获赞 1 · 访问量 1354

猜你喜欢

转载自blog.csdn.net/qq_36275923/article/details/104383352