1、 grep程序
linux下文本处理三剑客—grep sed awk
grep -- 文本 行过滤工具
sed -- 文本 行编辑器(流编辑器)
awk – 报告生成器(做文本输出格式化)
grep:
包括三个命令:grep egrep fgrep。它们是用来进行行模式(pattern)匹配的
egrep=grep -E 使用扩展的正则表达式进行匹配
fgrep=fast grep 只使用文件通配符进行匹配
*grep默认使用正则表达式进行文本匹配*
grep的用法:
grep [option] pattern [filename]
grep的常见选项:
-E 支持使用扩展的正则表达式(ERE)(regexp)
-P 使用perl语言的正则表达式引擎(搜索机制)进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)
-i 忽略大小写
-v 进行反选
-o 仅仅输出匹配的内容(默认输出的是匹配到的行)
--color=auto 语法着色
-n 显示行号
-w 匹配固定的单词
pattern-正则表达式
作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行(如果使用特殊字符,本身的含义就需要来转义)
回顾:文件通配符
* ?[] [^ ]
1. 字符匹配
. 任意一个字符
[] 范围内的任意一个字符
[^] 范围外任意一个字符
字符类: [:digit:]。。。。。
2. 次数匹配
* 匹配前一个字符0次到n次
? 匹配前一个字符0次到1次
+ 匹配前一个字符1次到n次
{m} 匹配前面的字符m次
{m,n} 匹配前面的字符m到n次
{0,n} 匹配前面的字符0到n次
{m,} 匹配前面的字符至少m次
3. 位置锚定
^ 锚定行首
$ 锚定行尾
锚定词首和锚定词尾
> 锚定词尾
< 锚定词首
4. 分组
() eg:(abc)* 此时我们将abc看做整体
分组特性:默认情况下,linux系统会为分组指定变量,而变量的表示形式为123…