简介
grep命令是Linux中进行文本匹配查找的搜索工具。
global regular expression print,全局正则表达式输出。
命令格式
grep [options] "search str" filename
常用参数
- -i 忽略大小写
- -n 输出对应的行号
- -c 统计符合的列数
- -v 显示不包含匹配文本的所有行
- -r 递归
- -B 显示行之前的内容
- -A 显示行之后的内容
- -C 显示行前后的内容
使用实例
查找指定的进程
命令
ps -ef |grep ssh
输出
502 4007 1 0 20 319 ?? 0:02.18 /usr/bin/ssh-agent -l
502 99134 97852 0 11:01上午 ttys000 0:00.00 grep ssh
说明
- 第一行是要查找的进程
- 第二行是grep进程本身,并非真正要查找的进程
如果想忽略第二行 只显示要查找的进程
ps -ef |grep ssh |grep -v grep // -v表示忽略掉grep
查找指定进程的个数
ps -ef |grep ssh -c // 输出2 [ssh进程 + grep进程]
真正指定的进程的个数
ps -ef |grep ssh |grep -v grep -c // 输出1
在文件中查找关键词
命令
grep str file
或者
cat file |grep str
显示关键词所在的行号
grep -n str file
在多个文件中查找关键词
grep str file1 file2
查找以指定字符串开头的内容
grep ^str file
查找非指定字符串开头的内容
grep ^[^str] file
查找以指定字符串结尾的内容
grep str$ file
查找多个字符串
grep -e str1 str2 file
在指定目录中查找内容
grep str ./*
在指定目录中及子目录中递归查找内容
grep -r str ./*
在指定目录中及子目录中递归查找内容 只输出匹配的文件 忽略匹配的内容
grep -l -r str ./*
输出匹配到的内容的前n行或者后n行
前n行 -B(Before)
grep -B n str file
后n行 -A(After)
grep -A n str file
前后各n行 -C
grep -C n str file