7.3

1、正则介绍

  正则就是一串有规律的字符串,对编写shell脚本有很大帮助

  各种编程语言中都有正则,原理是相同的

2、grep

  grep :过滤指定关键词 grep [-cinvABC] ‘word’ filename

  -c :行数

  -i:不区分大小写

  -n:显示行号

  -v:取反

  -r:遍历所有子目录,执行grep -r 'root' /etc/命令

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

  -B:同上,过滤出符合要求的行及上门的n行

  -C,同上,过滤出符合要求的行及上下各n行

   ^,放在[ ]外时,表示以xx开头,放在[ ]内时,表示对[ ]内的字符取非

  grep '[0-9]' passwd:查找passwd文件中所有包含数字的行

  grep -v '[0-9]' passwd:查找passwd文件中所有不包含数字的行

  grep '^#' /etc/inittab:查找文件中所有以#开头的行

  grep -v '^#' /etc/inittab:查找文件中所有不以#开头的行

  grep ‘[^0-9]’ inittab:查找文件中所有不包含数字的字符

  grep ‘^[^0-9]’ inittab:查找文件中所有以非数字的字符开头的行

  grep -v ‘^[^0-9]’ inittab:查找文件中所有以数字开头的行

 

  grep 'r.o' passwd:.表示任意 一个字符

  grep 'o*o' passwd:*表示左边的字符重复出现n次且以右边字符结尾的字符串,n表示任意的数字,包括0,

  grep '.*' passwd:匹配任意一个字符,即匹配所有:

  grep ‘o\{2\}’ passwd:查找文件中包含oo的字符串

  grep ‘o\{1,3\}’ passwd:查找文件中包含o、oo、ooo的字符串,{}表示左边字符的重复范围

   使用扩展的grep,egrep‘o{1,3}’ passwd:也可以实现查找文件中包含o、oo、ooo的字符串

  也可以使用grep -E实现上述功能:

  grep -E ‘(oo){2}’ passwd:查找文件中出现两次oo,即oooo的字符串

  grep -E 'o+o' passwd:表示+左边字符出现一次或多次且以右边字符结尾的字符串,与*相比,+不包含0次

  grep -E 'o?t' passwd:表示?左边字符重复0或1次,且以右边字符结尾的字符串

  grep -E 'root|nologin' passwd:查找文件中包含root或nologin的行

  grep -E 'root|Bus|997' passwd:查找文件中包含root或Bus或997的行

 

猜你喜欢

转载自www.cnblogs.com/w494129131/p/9251183.html
7.3