9.1 正则介绍_grep上
9.2 grep中
9.3 grep下
正则介绍_grep
- 正则就是一串有规律的字符串
- 掌握好正则对于编写shell脚本有很大帮助
- 各种编程语言中都有正则,原理是一样的
- 本章将要学习grep/egrep、sed、awk
grep/egrep命令
- grep命令:过滤出指定关键字的行;
- 格式:grep [参数] ‘字符’ filename
- grep -n 显示符号要求的行,并显示行号
- grep -c 打印符合要求的行数
- grep -v 打印不符合要求的行,取反的意思
- grep -r 会把目录下的所有文件全部遍历;-r针对的是目录,如果不加-r只能针对文件
- grep -i 忽略大小写
- grep -A2 打印符合要求的行以及下面两行
- grep -B2 打印符合要求的行以及上面两行
- grep -C2 打印符合要求的行以及上下两行
- grep -w 匹配一个完整的单词
- grep -E 特殊符号脱意==egrep
- centos7中自带 --color显示颜色 ;
- grep 跟特殊符号的话,要用单引号
- grep --include 包含
- grep -l 只打印出含有匹配字符串的文件名,不输出具体匹配行的数据
grep/egrep示例:
- grep -n ‘root‘ test.txt
- grep -nv ‘nologin‘ test.txt
- grep ‘[0-9]‘/etc/inittab
- grep -v ‘[0-9]‘/etc/inittab
- grep -v ‘^#‘ /etc/inittab
- grep -v ‘^#‘ /etc/inittab|grep -v ‘^$‘
- grep ‘^[^a-zA-Z]‘ test.txt
- grep ‘r.o‘ test.txt
- grep ‘oo*‘ test.txt
- grep ‘.*‘ test.txt
- grep ‘o{2}‘ /etc/passwd
- egrep ‘o{2}‘ /etc/passwd
- egrep ‘o+‘ /etc/passwd
- egrep ‘oo?‘ /etc/passwd
- egrep ‘root|nologin‘ /etc/passwd
- egrep ‘(oo){2}‘ /etc/passwd
- [0-9]:这里的方括号,表示方括号里面的任意一个字符;只要有一个数字,不管是几,就算符合要求。
正则里面的特殊符号
- 1 . 表示 任意一个字符
- 2 * 表示 零个或多个前面的字符
- 3 .* 表示零个或多个任意字符,空行也包含在内;以r开头o结尾。
- 4 ? 表示0个或者1个前面的字符,使用的时候要\ 脱意一下
- 5 + 表示一个或者多个+前面的字符
- 6 | 在正则表达式里面表示或者,可以写多个,是特殊符号,要使用脱意 或者-E 或者 egrep
- 7 () 括号表示一个整体,{1,3}大括号表示一个范围 ? +(){} |都是特殊符号,要使用必须脱意或者-E 或者egrep
扩展
把一个目录下,过滤所有.php文档中含有eval的行
grep -r --include=".php" ‘eval‘ /data/
原文地址:http://blog.51cto.com/13650048/2107921
时间: 2024-11-06 19:14:17