Linux三剑客命令之Grep及正则表达式

grep 作用:文本搜索工具,根据条件对文本进行逐行检查;也可打印到匹配的行。
grep会把一行一行读入,根据后面的条件逐行匹配符合就打印。不满足就不打印,直到最后。
在这里插入图片描述

grep 用法

grep -m1 root /etc/passwd 只要前1次
-v 显示不被匹配的行,也就是排除条件的行
-i 忽略大小写,
-n 显示行号,哪一行包含
-c 有几行包含root
-o 只把符合的答应出来
在这里插入图片描述
-q 不显示,可以通过echo $? 判断有没有
-A after 显示匹配的行后续几行 grep -n -A1 root /etc/passwd
-B befor显示匹配的行前面几行
-e 多个选项间逻辑or关系
grep -e “cat” -e “dog” file 有cat和dog的行
-w 配置整个单词,
-E 正则表达式
-F 相当于fgrep 不支持正则表达式
-f file 根据模式文件处理 把文件内容作为条件显示出来,类似-e

正则表达式:

由一类特殊字符及文本字符所编写模式
基本正则表达式
扩展正则表达式
元字符分类:字符匹配,匹配次数,位置锚定,分组
. 单个字符 : grep r…t /etc/passwd
[ ] 配置里面的任何一个字符[lxg]
[^] 排除
在这里插入图片描述
* 带边前面的一个字符出现任意次 0…n .*带边所有
? 前面的可有可以 0次或者1次
在这里插入图片描述
+ 匹配前面字符至少一次,一次或者1次以上
{n,}匹配前面的字符n次
{m,n}匹配前面的字符至少m次,至多n次
{,n}最多不能超过n次
{n,}最少不能低于n次

位置锚定:
^ 行首锚定 grep “^root” /etc/passwd
$ 行尾锚定 grep “$root” /etc/passwd
^$ 表示空
\< 单词的锚定 单词的左侧 除了字母数字下划线的其他符号,有连接就不是单词。
\> 词尾的锚定单词的右侧

分组:多个字符
在这里插入图片描述
后项引用:
在这里插入图片描述
前面是r…t后面跟\1表示和前面一样
在这里插入图片描述
表示以a或b开头的行
在这里插入图片描述
简化===》》在这里插入图片描述
扩展的表达式跟基本表达式基本一样,只是写的方法简化了,没有""了 grep后面加-E 或者egrep

发布了24 篇原创文章 · 获赞 16 · 访问量 2123

猜你喜欢

转载自blog.csdn.net/weixin_42776624/article/details/102642209