grep与正则表达式:
1、grep程序
linux下有文本处理三剑客--grep sed awk
grep:文本行过滤工具
sed:文本行编辑器(流编辑器)
awk:报告生成器(做文本输出格式化)
grep:包含三个命令:grep egrep fgrep,他们是用来进行行模式匹配的
egrep=gerp -E//使用扩展的正则表达式进行匹配
fgrep=fast grep //只使用文件通配符进行匹配
*grep默认使用正则表达式进行文本匹配
grep的用法:
grep 【option】 ... PATTERN【filename】
grep的常见选项--option
-E支持使用扩展的正则表达式
-P使用perl语言的正则表达式引擎进行搜索(每种语言的正则表达式引擎都不相同)
-i忽略大小写
-w匹配固定的单词
-v反选
-o仅仅输出匹配的内容
--color=auto 语法着色
-n显示行号
PATTERN--正则表达式
作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,就需要\来进行转义
1、字符匹配
.代表任意一个字符相当于文件通配符的?
[]范围内的任意一个字符
[^]范围外的任意一个字符
字符类: [:digit:]
任意数字, 相当于0-9
[:lower]
任意小写字母
[upper:]
任意大写字母
[alpha:]
任意大小写字母
[:alnum:]
任意数字或字母
[:blank:]|
水平空白字符
[:space:]
水平或垂直空白字符
[punct:]
标点符号
[print:]
可打印字符
[:cntrl:]
控制(非打印)字符
[:graph:]
图形字符
[xdigit:]
十六进制字符
2、次数匹配 ***匹配空白字符^[[:space:]]***
*匹配前面的字符0次到无数次
\?匹配前面的字符0次到1次
+匹配千米教案的字符一次到n次
\{m\}配置前面的字符M次
\{m,n\}匹配前面的字符m到n次
\{0,n\}匹配前面的字符0次到n次
\{m,\}匹配前面的字符至少m次
3、位置锚定
^锚定行首
$锚定行尾
\b锚定词首和锚定词尾
\>锚定词尾
\<锚定词首
4、分组
\(\)示例:\(abc\)* abcabc
分组特性:默认情况下,Linux系统会为分组指定变量,变量的表示形式 \1 \2 \3.....
重要知识点:交互式传参:read -p #//-t 是等待几秒
例子:read -p ("请输入一个东西: ")filename
原文:https://www.cnblogs.com/zrxuexi/p/11353164.html