SSH(Secure Shell Protocol)命令之 grep
grep是一个文本搜索工具,能够使用正则表达式搜索文本,并根据要求输出匹配的行数或者输出匹配的行,该命令的一般格式如下:
grep [选项] pattern files
- 常用【选项】有:
-? ?表示一个数字,意思是输出匹配行前后?行,-3表示输出前后3行
-c 只输出匹配的行数
-i 忽略大小写进行匹配
-n 打印匹配行的行号
- pattern 是要匹配文本的正则表达式,具体正则语法可以参考其他相关资料,这里只列举几个。
^ 行的开始 如:'^grep'匹配所有以grep开头的行。
$ 行的结束 如:'grep$'匹配所有以grep结尾的行。
. 匹配非换行符的任意一个字符 如:'ab.z' 匹配abcz,也匹配abzz
* 匹配零个或多个前导字符 如:'ab.*z' 匹配abz,也匹配abcccccczz
[] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
.........
- files 要搜索的文件列表,文件可以有一个或者多个,当然要搜索的目标也可以是其他命令的输出,可以使用管道进行连接
grep -c 'abc' a.log b.log
【实例】
grep用得比较多是用来进行统计,并与管道进行联合使用。
- 查找包含abc 的行 ,并打印行号
grep -n 'abc' a.log
利用管道方式完成同样的工作
cat a.log | grep -n 'abc'
意思是将cat看到的内容输出作为grep命令的输入,并在这个输入中搜索abc字符串
- 在所有log文件中搜索包含abc字符串的行
grep -n 'abc' *.log
============================万恶的分隔符=================================
下期命令 awk ,功能之强大,请关注