grep匹配字符串
基本正则表达式
元数据意义和范例
^word搜寻以word开头的⾏。
例如:搜寻以#开头的脚本注释⾏
grep –n ‘^#’
word$搜寻以word结束的⾏
例如,搜寻以‘.’结束的⾏
grep –n ‘.$’
.匹配任意⼀个字符。
例如:grep –n ‘e.e’
匹配e和e之间有任意⼀个字符,可以匹配eee,eae,eve,但是不匹配ee。
\转义字符。
例如:搜寻’,’是⼀个特殊字符,在正则表达式中有特殊含义。必须要先转义。
grep –n ‘\”
*前⾯的字符重复0到多次。
例如匹配gle,gogle,google,gooogle等等
grep –n ‘go*gle’
[list]匹配⼀系列字符中的⼀个。
例如:匹配gl,gf。
grep –n ‘g[lf]’
[n1-n2]匹配⼀个字符范围中的⼀个字符。
例如:匹配数字字符
grep –n ‘[0-9]’
[^list]匹配字符集以外的字符
正则匹配的含义例如:grep –n ‘[^o]‘
匹配⾮o字符
\{n1,n2\}前⾯的字符重复n1,n2次
例如:匹配google,gooogle。
grep –n ‘go\{2,3\}gle’
\<word单词是的开头。
例如:匹配以g开头的单词
grep –n ‘\<g’
word\>匹配单词结尾
例如:匹配以tion结尾的单词
grep –n ‘tion\>’
扩展正则表达式
grep⼀般情况下⽀持基本正则表达式,可以通过参数-E⽀持扩展正则表达式,另外grep单独提供了⼀个扩展命令叫做egrep⽤来⽀持扩展正则表达式,这条命令和grep -E等价。虽然⼀般情况下,基本正则表达式就够⽤了。特殊情况下,复杂的扩展表达式,可以简化字符串的匹配。
扩展正则表达式就是在基本正则表达式的基础上,增加了⼀些元数据。
元数据意义和范例
+重复前⾯字符1到多次。
例如:匹配god,good,goood等等字符串。
grep –nE go+d’
匹配0或1次前⾯的字符
例如,匹配gd,god
grep –nE ‘go?d’
|或(or)的⽅式匹配多个字串
例如:grep –nE ‘god|good’
匹配god或者good。
()匹配整个括号内的字符串,原来都是匹配单个字符
例如:搜寻good或者glad
grep –nE ‘g(oo|la)’
()前⾯的字符重复0到多次。
例如匹配gle,gogle,google,gooogle等等
grep –nE ‘go*gle’
1、grep -rn "hello,world!" *
* : 表⽰当前⽬录所有⽂件,也可以是某个⽂件名
-r 是递归查
-n 是显⽰⾏号
-R 查所有⽂件包含⼦⽬录
-i 忽略⼤⼩写
下⾯是⼀些有意思的命令⾏参数:
grep -i pattern files :不区分⼤⼩写地搜索。默认情况区分⼤⼩写,
grep -l pattern files :只列出匹配的⽂件名,
grep -L pattern files :列出不匹配的⽂件名,
grep -w pattern files :只匹配整个单词,⽽不是字符串的⼀部分(如匹配‘magic’,⽽不是‘magical’),grep -C number pattern files :匹配的上下⽂分别显⽰[number]⾏,
grep pattern1 | pattern2 files :显⽰匹配 pattern1 或 pattern2 的⾏,
grep pattern1 files | grep pattern2 :显⽰既匹配 pattern1 ⼜匹配 pattern2 的⾏。
这⾥还有些⽤于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
grep '\<man\>' 只匹配‘man’,⽽不是‘Batman’或‘manic’等其他的字符串。
'^':指匹配的字符串在⾏⾸,
'$':指匹配的字符串在⾏尾,
注:“全字匹配”是指匹配的部分两边没有word constituent(字母、数字和下划线),⽽不是要求匹配的部分全部由word constituent组成,如eth0和eth0:1: grep -w eth0时两者都会显⽰,eth0和eth0_1: grep -w eth0时只显⽰eth0
2,xargs配合grep查
find -type f -name '*.php'|xargs grep 'GroupRecord'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论