grep命令及正则
文本查找
grep,egrep,fgrep
grep :Global Research
根据模式搜索文本,并将符合模式的文本行显示出来
模式:Pattern,文本字符和正则的元字符组合而成匹配条件
grep 'root' /etc/passwd
-i :ignore case,忽略大小写
--color,高亮输出
-v:反向匹配,显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串
*:任意长度的任意字符
?:任意单个字符
[]:
[^]:指定范围外的
正则:Regular Expression,RegExp
元字符:
. :匹配任意单个字符
grep 'r..t' /etc/passwd
[] :匹配指定范围内的任意单个字符
[^] :匹配指定范围外的任意单个字符
字符集:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]
匹配次数(贪婪模式):
* :匹配其前面的字符任意次
a*b
a.*b
a?b
.* :任意长度的任意字符
\? : 匹配其前面的字符1次或0次
\{m,n\} :匹配其前面的字符至少m次,至多n次
\{1,\} :至少1次
\{0,3\}:0~3次
grep 'a\{1,\}b' test.txt :a至少1次,接b
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
grep '^r..t' /etc/passwd
$:锚定行尾,此字符前面的任意内容必须出现在行尾
grep 'w$' /etc/inittab :以w结束的行
grep 'b..h$' /etc/inittab :以 b..h结尾的行
^$:空白行
grep '^$' /etc/inittab :匹配空白行
grep '[[:digit:]]$' /etc/inittab :以数字结尾的行
grep '[[:space:]]$' /etc/inittab :以空白字符结尾的行
\<或\b :其后面的任意字符必须作为单词的首部出现
\>或\b :其前面的任意字符必须作为单词的尾部出现
\<root\>
grep 'root\>' test2.txt :root出现在词尾
grep '\<root' test2.txt :root出现在词首
分组:
\(\)
\(ab\)*
grep '\(ab\)*' test.txt :ab出现任意次
后向引用
\1:引用第1个左括号以及与之对应的右括号所包括的所有内容
\2:
\3:
grep '\(l..e\).*\1' test.txt :前面匹配l..e ,后面引用l..e
行中出现任意一数字\([0-9]\),中间跟任意字符.*,行尾以相同数字结尾\1$
grep '\([0-9]\).*\1$' /etc/inittab :前面匹配[0-9] ,后面引用[0-9]
最新文章
- MVC调试时遇到的URL问题
- scrollview背景头部拉伸
- 阿里云 Redis 服务遇到的问题
- lvs之dr技术的学习与实践
- Delphi out 参数 string Integer
- js foreach比for多出两个undefined
- Android事件
- web开发 关于src跳转
- 笔记:java并发编程实践1
- XJOIWinterCampPrecontest1-P2队列
- Makefile学习总结
- Promise对象解读
- 【Netty源码学习】入门示例
- javascript函数式编程一例分析
- 沉默的螺旋--digest
- 10分钟学会在Ubuntu 18.04 LTS上安装NFS服务器和客户端
- Decision tree(决策树)算法初探
- SQL Server with ties 语句
- vue-router使用 看着篇就够了
- ajax 常用功能 结构分解
热门文章
- Mapper.xml映射文件
- java使用类序列化反序列化(读写文件)
- iOS定时器-- NSTimer 和CADisplaylink
- Gradle Goodness: Task Output Annotations Create Directory Automatically
- 常用的layer弹出层
- jsp内置对象pageContext如何在Servlet中获取值
- 解决ssh连接linux系统特别慢的问题
- 360极速浏览器用ie8模式打开网页(360浏览器同理)
- iOS合并真机和模拟器framework
- NodeJ node.js Koa2 跨域请求