基础-26、正则grep

笔记内容:
9.1 正则介绍_grep上
9.2 grep中
9.3 grep下
扩展
把一个目录下,过滤所有.php文档中含有eval的行
grep -r --include="
.php" 'eval' /data/

(一)

正则:一串友规律的字符串

1.1grep 过滤 grep+'条件'+文件名

# grep 'nologin' passwd
image.png

1.2 -c 行数

# grep -c 'nologin' passwd
image.png

1.3 -n 显示行号

# grep -n 'nologin' passwd
image.png

1.4 -i 不区分大小写,不加i结果默认仅展示小写

# grep -ni 'nologin' passwd
image.png

1.5 -v 取反

#grep -nvi 'nologin' passwd //过滤后显示的结果不包含nologin这个条件
image.png

1.6 -A后跟数字n 过滤出符合要求的行及下面的n行

1.7 -B后跟数字n 过滤出符合要求的行及上面的n行

1.8 -C后跟数字n 过滤出符合要求的行及上下面的n行

1.9 -r 遍历所有子目录

# grep -r 'root' /etc/ //在/etc及下面所有子目录遍历显示过滤含root条件的结果
image.png
# grep -nA2 'root' passwd //过滤显示含root字符的行及下2行
image.png
# grep -nB2 'root' passwd //过滤显示含root字符的行及上2行
image.png
#grep -nC2 'root' passwd //过滤显示上下2行
image.png

(二)

image.png
# grep '[0-9]' passwd //过滤显示passwd文件中含数字的都显示
# grep -v '[0-9]' inittab //不带数字
# grep -n '^#' inittab //过滤展示inittab文件中以#开头的内容
# grep -vn '^#' inittab //过滤展示inittab文件中不以#开头的内容
# grep –n '[^0-9]' inittab //过滤展示inittab文件中单个非数字的字符内容
# grep –n '^[^0-9]' inittab //过滤展示inittab文件中以非数字开头的内容

(三)

 . 任意一个字符
* 0个或多个星号之前的字符
.*所有字符

{}花括号前的范围

  • 1个或多个加号之前的字符

? 0个或1个问号之前的字符

#grep 'r.o' passwd //过滤passwd文件中以r+任意一个字符+o组合的内容
# grep 'r*o' passwd //过滤passwd文件中含有r或o的多个字符内容
# grep '.*' passwd //过滤显示所有字符内容,含空格
# grep 'donghui.*bash' passwd //过滤passwd文件显示donghui这一行的记录
# grep 'r\{2\}' passwd //出现2次及以上相连r字符的内容
# egrep 'r{2}' passwd //出现2次及以上相连r字符的内容,不用脱义
# grep -E 'r{2}' passwd //grep –E=egrep
# grep -E '(rq){1}' passwd //过滤显示显示出现rq1次及以上内容
# grep -E 'r+q' passwd //加号前r后q出现>=1次内容
# egrep 'r?q' passwd //显示为带rq或者q的内容
# grep -E 'root|nologin' passwd //显示为带root或者nologin的内容

赵老铁的

你可能感兴趣的:(基础-26、正则grep)