grep
linux文本处理三剑客
grep:文本过滤(模式:pattern)工具
grep,egrep,fgrep
sed:stream editor 文本编辑工具
awk:Linux上实现gawk,文本报告生成器
grep:global search regular expression and print out the line
作用 文本搜索工具 根据用户指定的模式对文本进行匹配性检查,打印匹配到的行
模式:正则表达式字符以及基本的文字字符所编写的过滤条件
REGEXP:
分类:
基本正则表达式:BRE(basic regular expression)
扩展正则表达式:ERE(extend regular expression)
grep -E
egrep
grep [选项] 模式 [文件...]
--color=auto 对匹配到的文本进行着色
-v 显示没有匹配到的内容
-o 仅显示匹配到的字符本身
-i 忽略大小写
-q 静默模式,不输出任何信息
(可以使用$?查看搜索结果)
-A 数字 显示匹配到的行已经后面的数字行
-B 数字 显示匹配到的行已经前面的数字行
-C 数字 显示匹配到的行以及行前的数字行
基本正则表达式元字符
字符匹配:
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配范围之外的任意单个字符
[:digit:] [:alpha:]
匹配次数:用在要指定次数的字符后面,用于指定前面字符出现的次数
* 匹配前面的字符任意次
.* 任意长度的任意字符
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少一次
\{m\} 匹配前面字符m次
\{m,n\} 匹配前面的字符至少m次,至多n次
位置锚定:
^ 行首锚定 用于模式的最左侧
$ 行尾锚定 用于模式的最右侧
^模式$ 整行匹配模式
^$ 空行
\< 词首锚定 用于单词模式的左侧
\> 词尾锚定 用于单词右侧
\<模式\> 匹配整个单词
分组
\(\) 将一个或者多个字符捆绑在一起,当做一个整体进行处理
\(xy\)* 连续任意次数的xy
分组括号中的模式匹配到的内容会被正则表达式引擎记录到内部的变量中,
这些变量的命名为\1,\2,\3……
\1 从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符
后向引用:
grep "\(abc\)\+.*\1" test.txt
abc1234abc345
grep "\(abc\)\+.*" test.txt
abc1234abc345
abc1234bcd32421
grep命令及正则表达式
版权声明:Mr.O版权所有 转载请标明出处 https://blog.csdn.net/qq_28189423/article/details/83963875
猜你喜欢
转载自blog.csdn.net/qq_28189423/article/details/83963875
今日推荐
周排行