9.1 正则介绍_grep上

9.2 grep中

9.3 grep下

什么是正则

保障训练-20200818

grep命令

命令格式:grep [-cinvrABC] ‘word’ filename

常用选项如下:

保障训练-20200818

扩展正则,指的是表达式中含有: +?|(){}等符号,在grep中直接使用不行,需要加\脱义,如下3个命令等同:

保障训练-20200818

这个符号表示以什么什么开头。如:# 以#开头,或者【^#】取反,除#号开头的行

创建一个grep目录,拷贝过来一个文件/etc/passwd

保障训练-20200818

过滤passwd文件里,nologin的字符

保障训练-20200818

保障训练-20200818

grep查看符号要求的行数 -c

保障训练-20200818

grep -n显示这个文件包包含‘nologin’的行数

保障训练-20200818

grep不区分大小写 -i

保障训练-20200818

grep取反,除了nologin的显示出来 -v

保障训练-20200818

遍历所有的子目录 -r

grep -r‘root’/etc/(etc目录下所有包含root的文件列出来)

保障训练-20200818

-A2把包含root的行,以及这行下面的两行都打印出来

grep -nA2‘root’ passwd

保障训练-20200818

-B2把包含root的行,以及这行上面的两行都打印出来

grep -nB2‘root’ passwd

保障训练-20200818

-C2把包含root的行以及这上下两行都打印出来

grep -nC2‘root’ passwd

保障训练-20200818

grep正则表达式具体用法示例

查看一个文件里0-9所有的数字,【】括号表示里面的任意一个字符

grep ‘[0-9]’ passwd

保障训练-20200818

反选-v 把不包含数字的行列出来

grep -nv‘【0-9】’/etc/inittab

保障训练-20200818

取反,过滤掉所有以#开头的行

grep -nv‘^#’ inittab

把不是以#开头的行,显示出来

过滤非0-9开头的数字的行显示出来

保障训练-20200818

过滤出任意一个字符和重复字符,示例如下:

grep ‘r.o’ passwd

保障训练-20200818

指定要过滤出的字符出现次数,示例如下:

保障训练-20200818

过滤出一个或多个指定的字符,示例如下:

保障训练-20200818

过滤出零个或一个指定的字符,示例如下:

保障训练-20200818

过滤出字符串1或者字符串2,示例如下:|或者

保障训练-20200818

保障训练-20200818

总结:

保障训练-20200818

相关文章:

  • 2021-12-19
  • 2022-01-05
  • 2021-07-09
  • 2021-09-18
  • 2021-09-04
  • 2021-05-27
  • 2021-07-05
  • 2021-12-23
猜你喜欢
  • 2021-05-06
  • 2022-01-17
  • 2021-08-30
  • 2021-11-15
  • 2022-01-16
  • 2021-06-26
  • 2021-05-14
相关资源
相似解决方案