13 shell脚本--005grep和正则表达式
Posted wx00
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13 shell脚本--005grep和正则表达式相关的知识,希望对你有一定的参考价值。
1、grep程序
grep:文本 行过滤工具
sed:文本 行编辑器(流编辑器)
awk:报告生成器,(做文本输出格式化)
grep包含3个命令:grep、egrep、fgrep,他们是用来进行 行模式(pattern)匹配的
egrep = grep -E //使用扩展的正则表达式进行匹配
fgrep = fast grep //只使用文件通配符进行匹配
grep //默认使用正则表达式进行文件匹配
grep的用法:
grep 【option】... PATTERN [filename]
grep的常见选项:----option
-E //支持使用扩展的正则表达式(regexp)
-P //使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed awk grep使用的regexp引擎都不相同)
-i //忽略大小写
-v //进行反选
-o //仅仅输出匹配的内容(默认输出的是匹配到的行)
-n //显示行号
--color=auto //语法着色
-w //匹配固定单词
\<[0-9]\2,3\\>
\b<[0-9]\2,3\\b
PATTERN(pattern)--正则表达式
作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,需要 \ 进行转义;
回顾文件通配符:* ? [ ] [^ ]
1、字符匹配
. //任意一个字符-------->?
[ ] //范围内的任意一个字符---------->[ ]
[^ ] //范围外任意一个字符---------->[^ ]
字符类:[0-9] = [[:digit:]]
[0-9][a-z][A-Z] = [[:alnum:]]
[a-z] = [[:lower:]]
[A-Z] = [[:upper:]]
[~!@#$%^&*] = [[:punct:]]
[[:space:]]
2、次数匹配
* //匹配前面的(紧挨着的字符)0次到无数次
\? //匹配前面的(紧挨着的字符)0次到1次
\+ //匹配前面的(紧挨着的字符)1次到无数次 ( * = ?+)
\m\ //匹配前面的字符m次
\m,n\ //匹配前面的字符m到n次
\0,n\ //匹配前面的字符0到n次
\m,\ //匹配前面的字符至少m次
3、位置锚定
^ //锚定行首
$ //锚定行尾
\b //锚定词首和锚定词尾
\> //锚定词尾
<\ //锚定词首 <\root\>
4、分组
abc* abccccc abc我们要看成一个整体
\(\) 示例:\(abc\)* abcabcabc abccc
**分组特性:默认情况下,Linux系统会分为指定变量,变量的表示形式为\1 \2 \3
2、正则表达式
以上是关于13 shell脚本--005grep和正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
bash:在 shell 脚本中使用正则表达式查找和 grep