目录
1、grep 命令常见参数及使用方法
grep 命令:按照一定规则的文本搜索工具,打印匹配的行;
模式:由正则表达式以及一些文本字符所编写出来的过滤条件
语法:grep 选项 表达式 文件路径
常用选项
-n 打印行号(grep -n 'root' /etc/passwd 在该文件中打印出含有root的行号和内容) -v 反向过滤被模式匹配到的行 -r 目录递归搜索 (在多级目录中对文本进行递归搜索 egrep -r "111" *) -l
打印模式匹配到的文件(找出内容中含有first单词的文件都有哪些。
[roc@roclinux ~]$ grep -l "first" *.txt )
-w 精确匹配整个单词 -o 仅输出匹配到的内容 -e 指定字符串做为查找文件内容的样式。
并列使用多个 -e参数可以实现或条件
-A num 打印匹配到行之后的num行 -B num 打印匹配到行之前的num行 -C num 打印匹配到行的前后num行
( grep -C 1 "bash" /etc/passwd,输出匹配含有bash行和其上下一行)
-E 代表开启扩展正则表达式(grep -E 和 egrep效果一样)
当把匹配数字的规则写成多个的时候,代表至少匹配多次
基本正则表达式
分组和引用 分组 \(\) 将括号中的内容当作一个整体捆绑起来,在后面 进行整体处理 引用 \1 模式的左侧起,第一个左括号与它匹配的右括号之 间的模式所匹配到的字符 \2 模式的左侧起,第二个左括号与它匹配的右括号之 间的模式所匹配到的字符 \3 模式的左侧起,第三个左括号与它匹配的右括号之 间的模式所匹配到的字符
举例
匹配字数
表示?前的d出现0次或1次
表示*前的b出现0次或1次或多次,所以会匹配到 高亮显示内容
表示+前的b至少出现1次,所以会ac没有匹配到
因为aaaa中每一个a都出现了1次,所以全部匹配到了。
grep "b\{0,3\}" b至少出现0次,至多出现3次
位置锚定