【APP】Linux运维利器--Grep命令及正则表达式
grep, egrep, fgrep
grep: 根据模式搜索文本,并将符合模式的文本行显示出来。
总结内容:
1、grep常用参数
2、grep正则表达式元字符集(基本用法)及高级用法
3、与正则相关的POSIX特殊字符类
语法:grep [options]PATTERN [FILE...]
grep中常用的几个参数:
-r 递归匹配
-E 高级扩展功能与egrep功能相似
-i 忽略大小写差别
-v 反向匹配,只显示不匹配的行
-w 如果被\<和\>引用,就把表达式做为一个单词搜索(单词匹配)
如:netstat -ntlp |grep"\<80\>"
grep -w'main' /usr/include/*.h
-n 显示匹配行及行号
-l 用于多文件查找,查询多文件时只输出包含匹配字符的文件名
grep -l -r -i -w 'filename_max' /usr/include/*.h
--color 高亮显示匹配
-c 只打印匹配的行数,不显示匹配的内容
-o:只显示被模式匹配到的字符串
grep正则表达式元字符集(基本用法)
匹配次数(贪婪模式):
. 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
* 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.* 一起用来表示任意字符。
\? 匹配其前面的字符1次或0次。
x\{m\} 连续重复字符x,m次,如:'o\{5\}'匹配包含连续5个o的行。
x\{m,\} 连续重复字符x,至少m次,如:'o\{5,\}'匹配至少连续有5个o的行。
x\{m,n\} 连续重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配连续5--10个o的行。
元字符:
[] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符前面的任意内容必须出现在行尾
\<或\b 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>或\b 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
分组:
\(\)
\(ab\)*
后向引用
\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
\2:
\3:
\w 匹配一个文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W w的反置形式,匹配一个非单词字符,如点号句号等。\W*则可匹配多个。
\b 单词锁定符,如: '\bgrep\b'只匹配grep,即只能是grep这个单词,两边均为空格。
多个关键字查找
1.1 使用-e
grep -e 'stdio\.h' -e 'stdlib\.h' /usr/include/*.h
1.2 使用-f file
将关键字以行方式保存在一个文件中
1.3 使用元字符 \|
grep 'stdio\.h\|stdlib.h' /usr/include/*.h
关于egrep和grep -E的高级用法:
+ 匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
? 匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。 a|b|c 匹配a或b或c。如:grep|sed匹配grep或sed
() 分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。 x,x{m,},x{m,n} 作用同x\{m\},x\{m,\},x\{m,n\}
POSIX特殊字符类:可以通过 man 7 glob查看。。。
[:alpha:] 文字字符 [A-Za-z]
[:digit:] 数字字符 [0-9]
[:graph:] 非空字符(非空格、控制字符)
[:lower:] 小写字符 [a-z]
[:upper:] 大写字符 [A-Z]
[:alnum:] [0-9a-zA-Z]
[:cntrl:] 控制字符
[:print:] 非空字符(包括空格)
[:punct:] 标点符号
[:space:] 所有空白字符(新行,空格,制表符),制表符还可以用\t表示
[:xdigit:] 十六进制数字和字母(0-9,a-f,A-F)
我们在用时要这样用:[[:alpha:]],如果取反就是[^[:digit:]]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正则表达式:
Basic REGEXP:基本
Extended REGEXP:扩展
PS: 这里不再做详细说明!!!!!!!!!
基本正则表达式:
.:
[]:
[^]:
次数匹配:
*:
\?: 0或1次
\{m,n\}:至少m次,至多n次;
.*:
锚定:
^:
$:
\<, \b:
\>, \b:
反向引用
\(\)
\1, \2, \3, ...
grep:使用基本正则表达式定义的模式来过滤文本的命令;
-i
-v
-o
--color
-E: 使用扩展正则表达式
-A #:
-B #:
-C #:
扩展正则表达式:
字符匹配:
.
[]
[^]
次数匹配:
*:
?:
+: 匹配其前面的字符至少1次
{m,n}
位置锚定:
^
$
\<
\>
分组:
():分组
\1, \2, \3, ...
或者
|: or
C|cat: Cat或cat, C或cat
转载于:https://blog.51cto.com/opsmysql/1203128
【APP】Linux运维利器--Grep命令及正则表达式相关推荐
- strace跟踪java,linux运维利器—–strace命令
strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式 ...
- 97 条 Linux 运维工程师常用命令总结
97 条 Linux 运维工程师常用命令总结 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"." ...
- linux运维排查常用命令(开发专享)
cd: 进入到某个目录下 cd hikvision ll:详细展示该目录下有的文件 ll su 用户名:切换用户名 例子: su root 根据字符串在文件中查找信息:Grep –a –i 字符串 文 ...
- 【APP】取代top工具的Linux运维利器--htop
htop是一款运行于Linux系统监控与进程管理软件,用于取代Linux/Unix下传统的top,htop用C语言编写,采用了ncurses库,因此使用有此功能需要安装ncurses. 与top相比有 ...
- Linux运维入门快捷命令设置说明大全
文章目录 一.目录结构说明 二.重要目录数据信息说明 三.etc目录下重要的数据文件 四.usr目录下重要的数据文件 五.var目录下重要的数据文件 六.proc目录下重要的数据文件 七.系统优化相关 ...
- 网易云课堂Linux运维在线班命令笔记
#################################### ###在线班-命令记录 ############ #################################### 1 ...
- Linux运维之常见命令
文件管理类命令 :cp : 复制cp SRC DEST如果DEST不存在,系统会自动创建文件或目录如果DEST存在 :如果SRC是一个文件 : 如果DEST是一个文件,会直接将SRC中的内容覆盖DES ...
- Linux运维:ulimit命令修改打开文件的句柄数
文章目录 ulimit命令语法 参数说明: 查看本机设置的参数: ulimit修改打开文件的句柄数 场景 解释: 修改 1.修改file-max 2.修改ulimit的open file 注意事项 d ...
- Linux运维之top命令解析
0 背景 在 linux 系统上开发的时候,经常要用到 top 命令来对进程以及资源进行监控,本文对该命令的输出以及使用方法做一个介绍. 1 输出解析 如下图所示为在我的系统中运行 top 指令后输出 ...
最新文章
- Java面试题库,mysql远程访问权限设置
- recyclerview item动画_RecyclerView 的 Item 酷炫动画,效果加案例讲解!
- android开发--翻转闹铃(从制作到打包)
- android工程jrr版本怎么改,ionic3 生成android 如何控制versionCode版本号
- java 找不到符号 con_我的java程序运行时,提示找不到符号,求解!
- 怎样能确保计算机安全,如何确保电脑安全
- 错过SaaS,就是错过这个时代
- jenkins的svn路径中文问题
- gels imagej 图片处理_如何用ImageJ分析运动细胞?
- 详解MessageBox(),MsgBox函数的正确使用
- python爬取豆瓣电影影评_Python3爬虫实战:以爬取豆瓣电影为例
- java isprime函数_Java8函数式编程入门
- QQ空间照片回收站在哪里,QQ隐藏的一些功能
- 老徐小程序官方教程地址
- 中英文常用标点符号统一清洗为英文格式
- 聊一聊Java中的线程中断
- 用MATLAB绘制两个圆相切,教您用几何绘图工具画三个两两相切的圆
- iPad莫名其妙黑屏了,无法打开屏幕?
- HTML5期末大作业:个人介绍/个人主页/网页设计——个人博客 (11页) HTML+CSS+JavaScript
- SOC的定义、适用性和组成
热门文章
- 若依框架集成redis缓存
- [Ext JS 4] 实战之Chart, Column Chart 定制颜色
- python 图像的拉普拉斯变换中的数值问题_数字图像处理(第十章)
- 加号和减号在一起怎么读_在家摄影怎么玩?拍摄小黄米场景搭建,摄影软件和修图软件介绍...
- java格式化时间博客园_Java 日期格式化工具类
- chm帮助文档编辑_零成本轻松制作帮助文档方法分享
- Spring Cloud 设置Feign的日志记录级别
- java 令牌解析_Java JWT的令牌机制
- 苹果7支持快充吗_iPhone12的磁吸无线充到底怎么回事?是否支持苹果20W快充?
- LINUX 下 RABBITMQ安装与配置