grep是工作用到最多的命令,绝对是linux下的利器,这里总结一下
用法:grep -[acinv] '搜索内容串' filename
-a 以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 输出行号
-v 反向选择,即找 没有‘搜索字符串’的行
搜索串可以是正则表达式。
1、输出行号,带‘name’和不带'name'的行
➜ my-web grep -n 'name' test.log ➜ my-web grep -nv 'name' test.log
2、利用[]搜索集合字符,[]表示其中的某一个字符
➜ my-web grep '[mn]i' test.log name=jack,nike #name=mike
3、可以用^符号做[]内的前缀,表示除[]内的字符之外的字符
➜ my-web grep '[^n]' test.log #奇怪,把所有行输出了 tbbbbbbb name=1234 name=jack,nike #name=mike age=24下面2种方式都ok!!
➜ my-web grep -v '[n]' test.log tbbbbbbb age=24
➜ my-web grep '[^n]i' test.log #name=mike
4、 [] 内可以用范围表示,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z]则是大写字母
➜ my-web grep '[0-9]' test.log name=1234 age=24 ➜ my-web grep '[a-z]' test.log
5、行首与行尾字符 ^ $. ^ 表示行的开头,$表示行的结尾( 不是字符,是位置)那么‘^$' 就表示空行,因为只有 行首和行尾。 这里^与[]里面使用的^意义不同。它表示^后面的串是在行的开头。
➜ my-web grep '^name' test.log name=1234 name=jack,nike
➜ my-web grep '^[a-z]' test.log tbbbbbbb name=1234 name=jack,nike age=24
#搜索开头不是小写英文字母的行 ➜ my-web grep '^[^a-z]' test.log #name=mike --------------------------------------
6、$表示它前面的串是在行的结尾,比如 '\.' 表示 . 在一行的结尾,.是正则表达式的特殊符号,所以要用\转义
➜ my-web grep 'e$' test.log name=jack,nike #name=mike ➜ my-web grep -n '^$' test.log 5: ➜ my-web grep -nv '^$' test.log 1:tbbbbbbb 2:name=1234 3:name=jack,nike 4:#name=mike 6:age=24 7:
7、正则表达式中,*表示有0个或多个某个字符,.代表一个任意字符
➜ my-web grep 'm..e' test.log #name=mike ➜ my-web grep 'tbbb*' test.log tbbbbbbb
8、限定连续重复字符的范围 { } ,范围是数字用,隔开 2,5 表示2~5个, 2表示2个,2, 表示2到更多个 注意,由于
{ }在SHELL中有特殊意义,因此作为正则表达式用的时候要用\转义一下
➜ my-web grep 'tb\{5,\}' test.log tbbbbbbb
9、egrep扩展正则表达式,其实 egrep 是 grep -E 的别名而已。因此grep -E 支持扩展正则。这里| 表示或的关系,+于 . * 作用类似,表示一个或多个重复字符。 ?于 . * 作用类似,表示0个或一个字符。()将部分内容合成一个单元组。
➜ my-web egrep '^t|^#' test.log tbbbbbbb #name=mike
10、fgrep、egrep、grep区别:
gerp Search a Pattern from current directory.
egrep (grep -E in linux) is extended grep where additional regular expression metacharacters have been added like +, ?, | and ().
fgrep (grep -F in linux) is fixed or fast grep and behaves as grep but does not recognise any regular expression metacharacters as being special.
11、grep 搜索jar包里包含名称的文件,并列出jar包,用于排查类冲突
[xxx@yyyy lib]$ grep -r RequestParser . Binary file ./aaa-4.0.13-SNAPSHOT.jar matches
相关推荐
linux-grep-命令-详解
Linux 基础 38-文件内容命令-03-grep查找文件内容.flv
Linux 基础 39-文件内容命令-04-grep行首/行尾的模式查找.flv
扩充windows下cmd的命令行,完全兼容linux上命令行模式;下载完毕后,解压;然后配置到环境变量中
Linux常用命令和管理03-grep及正则表达式1
大数据基础-Linux基础详解课程
linux ps 命令详解 资源收集 linux ps 命令详解 资源收集
本文主要对linux-shell脚本命令中的grep命令进行简介,希望对您有所帮助。
linux下grep的详细用法介绍,有需要的欢迎下载
介绍linux下的grep关键查询的命令用法
linux中的常用分类的grep命令的相关内容
linux grep 命令的详情解释 给初级者
linux 命令 常用 详解,适合作为参考手册
egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊...
扩展正则表达式字符匹配:. [] [^]次数匹配(无需转义):* ?
__RCSID("$NetBSD: grep.c,v 1.11 2012/05/06 22:27:00 joerg Exp $"); #include #include #include #include #include #include #include #include #include #include #include #include #include #...
windows 上可用的linux命令把内容解压到system32目录下即可,或者自行配置全局环境。
linuxgrep命令.pdf
主要给大家介绍了关于Linux中利用grep命令如何检索文件内容的相关资料,并且给大家简单介绍了关于Linux grep和find的区别,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。