深入理解Linux grep与正则表达式实战应用
43 浏览量
更新于2024-08-29
收藏 585KB PDF 举报
Linux grep 是一款强大的文本搜索工具,它在Unix和类Unix系统中广泛使用,包括Linux环境。grep主要功能是通过正则表达式在全球范围内搜索文本并打印匹配的行。它支持grep、egrep(增强版grep,支持正则表达式)、fgrep(简单版grep,不支持正则表达式)等多种模式。Windows系统中的类似工具是FINDSTR。
grep的基本用法通常需要接收标准输入,并经常作为管道(|)操作的最后一个命令,因为它可以处理来自其他命令的输出。grep提供了一系列参数,如:
- --color=auto:自动为匹配的文本着色,便于区分。
- -v:反向选择,显示不匹配pattern的行。
- -i:忽略大小写,方便在不考虑大小写的搜索中使用。
- -n:显示匹配行的行号。
- -c:仅输出匹配行的数量,而不是行本身。
- -o:只输出匹配的字符串。
- -q:静默模式,仅返回成功与否的状态,不输出匹配内容。
- -A#、-B#、-C#:指定前后多少行的上下文显示。
- -e:用于定义多个选项的逻辑“或”关系。
- -w:匹配整个单词,包括数字和下划线。
- -E:等同于egrep,启用正则表达式。
- -F:等同于fgrep,不支持正则表达式。
- -f:读取文件中的模式进行搜索,适合多个模式的组合。
以下是一些练习题,展示了grep和正则表达式的实际应用:
1. 查找用户root、centos、arch的UID和默认shell:`grep -iu 'UID:.*\sshell:.*' /etc/passwd | awk '{print $1 ":" $7}'`
2. 找出/etc/rc.d/init.d/functions文件中以某个单词(包含下划线)后面跟小括号的行:`grep -E '^word_.*\(.*\)$' /etc/rc.d/init.d/functions`
3. 提取/etc/rc.d/init.d/functions中文件名(基名):`basename $(grep -rlE '^function\s' /etc/rc.d/init.d)`
4. 提取文件路径的目录名:`dirname $(find /etc/rc.d/init.d -type f -exec basename {} \;)`
5. 统计last命令中root登录的IP地址登录次数:`last | grep 'root' | awk '{print $1}' | sort | uniq -c`
6. 用正则表达式表示数字范围:`echo '0-9:[0-9],10-99:[1-9][0-9],100-199:1[0-9][0-9],200-249:2[0-5][0-9],250-255:25[0-5]'`
7. 显示ifconfig命令的结果中所有IPv4地址:`ifconfig | grep -Eo 'inet (addr:)?([0-9]{1,3}\.){3}[0-9]{1,3}'`
8. 字符串排序:`echo 'welcometocentoslinux' | tr -cd '[:alnum:]' | sort | uniq -c | sort -nr`
正则表达式是grep的强大特性,通过元字符(如`.`、`\d`、`\w`等)和模式修饰符(如`^`、`$`、`*`、`+`等)来描述复杂的搜索模式。学习和熟练掌握正则表达式是提高grep效率的关键。在实际使用中,结合grep的各种选项和正则表达式能够进行高效、灵活的文本搜索和处理。
2018-01-04 上传
2020-12-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-10-27 上传
2021-01-21 上传
点击了解资源详情
点击了解资源详情
weixin_38569166
- 粉丝: 7
- 资源: 878
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明