Linux 三剑客之grep
三剑客之一:grep
定义: 文本过滤器: 根据文本内容过滤文件。
语法格式 :grep 参数 匹配规则 操作对象
参数:
-n :过滤文本时,将过滤出来的内容在文件内的行号显示出来
-A n:匹配成功之后,将匹配行的后n行显示出来
例:[root@localhost ~]# grep -n -A 2 'asdwq' 1.txt
-B n:匹配成功之后,将匹配行的前n行显示出来
-C n:匹配成功之后,将匹配行的前后n行都显示出来
-c :只显示匹配成功的行数 (匹配成功5行 之打印 5)
-o :只显示匹配成功的内容 其余在同行的内容不显示
-v :反向过滤
例:匹配除了存在asdwq的行
[root@localhost ~]# grep -n -v 'asdwq' 1.txt
-q :静默输出
# 不打印出来但是已经匹配成功
-i :忽略大小写
-l :匹配成功之后,将文本的名称打印出来
-R/-r :递归匹配
如果是文件夹匹配的话不递归匹配会报错。
例:查询/etc下包含root的文件 :grep -rl 'root' /etc
-E :使用拓展正则 grep -E 等价于 egrep
知识储备:
$? :上一行命令执行的结果,如果返回0则上一条执行成功,其他数字则代表失败
wc :匹配行数
参数:
-l :打印匹配的行数
-c :打印匹配的字节数
在/etc目录下,有多少个文件包含root。
grep -rl 'root' /etc/ | wc -l