关于grep和egrep的一些整理
来源:互联网 发布:mac抹掉磁盘重装黑屏 编辑:程序博客网 时间:2024/05/22 08:24
其实主要是正则表达式中的一些特殊语法。在网上找的几篇文章,截取相关部分贴在了下面,方便以后翻阅。
参考:http://hi.baidu.com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558
http://blog.mcuol.com/User/pclli/Article/55269_1.htm
还有万能的百度百科:http://baike.baidu.com/view/94238.htm
(little tip:正则表达式中的[[:space:]]跟空格不是完全一样,他出代表空格字符外,还可代表'\t'。假如hello.c文件中有一行“int main()”,如果文件中int 和main之间用的是空格,则egrep "int " hello.c 和egrep"int[[:space:]]" hello.c都可以找到这一行,但如果int 和main之间使用TAB键隔开的,则用egrep"int[[:space:]]" hello.c仍可以找到这一行,但用egrep "int " hello.c就不行。)
grep:
格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以.
grep '\<Tom\>' file 包含单词Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy开头的行
grep '\.bak$' file 包含以.bak结束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的单词的行
grep '[A-Z]' file 包含至少一个大写字母的行
grep '[0-9]' file 包含至少一个数字的行
grep '[A-Z]...[0-9]' file 包含五个字符,以大写开头, 和一个数字结尾的行.
grep -w '[tT]est' file 包含单词和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不打印行, 而是用来检查退出状态.
grep -v aaa file 打印不包含aaa的行.
grep -i cathy file 打印所有包含cathy的行, 而不考虑大小些.
grep -l 'dear cathy' * 打印包含dear cathy的文件的文件名清单.
grep -n tom file 打印匹配的行并追加行号.
grep "$LOGNAME" file 包含变量内容的行, 注意必须用双引号, 单引号则无法引用变量.
grep '$name' file 打印包含字符$name的行.
egrep:
egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.
egrep '^+' file 以一个或者多个空格开头的行.
grep '^*' file 同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一个ab的行.
egrep 'x[0-9]?' file 包含x或者x后面跟着0个或者多个数字的行.
egrep 'fun\.$' * 所有文件里面以fun.结尾的行.
egrep '[A-Z]+' file 至少包含一个大写字母的行.
egrep '[0-9]' file 至少一个数字的行.
egrep '[A-Z]...[0-9]' file 有五个字符, 第一个式大写, 最后一个是数字的行.
egrep '[tT]est' file 包含单词test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考虑sam的大小写,含有sam的行.
egrep -l "dear ken" * 包含dear ken的所有文件的清单.
egrep -n tom file 包含tom的行, 每行前面追加行号.
egrep -s "$name" file 找到变量名$name的, 不打印而是显示退出状态. 0表示找到. 1表示表达式没找到符合要求的, 2表示文件没找到.
在正则下
\ 关闭后续字符的特殊定义,但
. 任何单个字符
* 0个或多个 在它之前的单个字符
单独出现时 在BRE中不具有任何意义(因为前面为空 就什么都没有)
^ 在BRE中 在表达式开头处具有意义
在ERE中 任何位置都有意义
$ 同上,只是他代表的是结尾处
[] 匹配方括号内任一字符
- 在这里的意思是连续 ex:1-9 1到9
^ 代表非
在方括号表达式中,所有的meta字符都会失去特殊含义
[]*\.-]这个例子比较特殊 对] 跟- 放进[]里的位置有些许讲究
不用担心单引号先找到或者是双引号先找到
注:BRE 基础正则表达式 ERE 扩展正则表达式
注:
[::] 字符集 ex: [:alpha:] 字母字符 [:alnum:] 数字字符
[:upper:] 大写 [:lower:] 小写 [:space:] 空格(和'\t')
[..] 多字符序列视为一个单位
[==]等价字符集 对于有音标的才需要
后向引用
ex:
另外注意的是,n代表1-9 最多可以9次的应用,顺序是从左开始
- 关于grep和egrep的一些整理
- 关于grep和egrep的一些整理
- 关于grep和egrep的一些整理
- grep,egrep和fgrep的区别
- grep,egrep和fgrep的区别
- grep,egrep和fgrep的区别
- grep,egrep和fgrep的区别
- L26 grep和egrep工具的使用
- grep 和 egrep fgrep
- grep、fgrep 和 egrep 命令
- linux中grep和egrep的用法1
- linux里grep和egrep,fgrep的区别
- linux里grep和egrep,fgrep的区别
- grep与egrep的区别!
- grep, egrep
- linux通配符,grep和 egrep区别
- Linux之grep和egrep命令总结
- grep与egrep的相关知识
- Lambda表达式
- [RK3288][Android6.0] 调试笔记 --- UVC Camera jpg和yuv数据帧dump
- Myeclipse 2014 破解补丁 附官方安装包与图文使用方法
- 微信公众平台开发历程(二)
- QT实现一个登录界面
- 关于grep和egrep的一些整理
- iOS中UICollectionView实现单个cell滚动翻页并放大cell
- 如何通过网页查看真机或者虚拟机的数据库
- Nginx反向代理和负载均衡部署指南
- C
- A request has been denied as a potential CSRF attack.
- Spring Boot配置多数据源并实现Druid自动切换
- 标准模板库STL学习总结
- animation-fill-mode