grep命令总结
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep, egrep和fgrep是grep的扩展,与Windows下命令 findstr 类似。
命令格式: grep string filename
--color 同—color=auto 高亮显示匹配到的字符串,也可使用别名alias实现,alias grep=‘grep --color=auto’
-v --revert-match,反向查询,即输出没有匹配到的字符串
-i --ignore-case,忽略大小写
-n --line-number,在匹配到的内容前显示行号
-c --count,匹配到字符串的行数(注意:不是匹配到的次数)
-o grep默认输出匹配到字符串所在行的全部内容,-o选项仅显示匹配到的字符串
每个匹配到的字符串都会显示为一行,即若在一行中匹配到n个字符串,会输出n行字符串(每行一个字符串)(用于统计字符串出现在文本中的次数)
-w 完全匹配整个单词,不匹配含有字符串的单词,例如 magic 不匹配会 magical
-a 把二进制文件当做文本处理
-An(after) 显示匹配字符串及其后n行数据
-Bn(before) 显示匹配字符串及其前n行数据
-Cn(context) 显示匹配到的字符串及其前后n行
例:
grep 'linux' test.txt test2.txt //从多个文件中查找linux
多文件查询时,会把文件名在行首输出,并且加上":"作为标示符。
例:
find . -name ".log" | grep -i error | grep -vi "info"
1、使用find -name 来列出所有log文件,重定向给grep
2、使用grep -i 来查找包含error的行
3、使用grep -vi 来查找不包含info的行
egrep与grep -E
grep 过滤多个条件
错误写法:
netstat -an|grep "ESTABLISHED|WAIT" //默认grep不支持多条件匹配
正确写法:
netstat -an|grep -E "ESTABLISHED|WAIT" //grep -E 并将条件用""包起来,条件之间用“|”管道符分开
grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename // 用egrep同样可以实现
awk '/123|abc/' filename // awk 的实现方式
与 & 或 | 非 !
最新文章
- wpf listview
- Hadoop日记Day1---Hadoop介绍
- MYSQL启动报1067错误,系统日志中是“服务 mysql 意外停止” Mysql日志中则是:“Plugin \'FEDERATED\' is disabled”
- echarts饼图--数据交互
- 17) JMS: java Message Service(Java消息服务)
- Git CMD - add: Add file contents to the index
- UNIX 网络编程第五章读书笔记
- 理解依赖注入(IOC)和学习Unity
- jQuery1.9.1针对checkbox的调整
- 简单分析android textview xml 的属性设置
- 出现JSONvalue failed .error is Illegal start of token
- DCL的失效:现实与初衷的背离
- 苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类
- IntelliJ IDEA 关闭多余项目
- [Linux]Ubuntu与终端破墙
- sparksql udf自定义函数中参数过多问题的解决
- eclipse哪个版本好
- 第一次java程序测试感受
- KB和KiB的区别
- mysql生成不重复随机数(unique number generation)