Linux如何使用grep搜索文件内容_Linux下正则表达式匹配与查找技巧【指南】
技术百科
尼克
发布时间:2026-01-01
浏览: 次 grep是Linux中定位含特定文本文件的核心工具,支持基础搜索、递归查找、正则匹配(含IP)、反向筛选及高亮行号等功能。
如果您需要在Linux系统中快速定位包含特定文本的文件,grep命令是核心工具。以下是使用grep搜索文件内容及正则表达式匹配与查找的具体操作方法:
一、基础文本搜索
grep默认执行逐行匹配,适用于精确字符串查找,不区分大小写时需额外参数支持。
1、在当前目录所有.txt文件中搜索“error”:grep "error" *.txt
2、在指定文件file.log中查找包含“timeout”的行:grep "timeout" file.log
3、忽略大小写搜索“Warning”:grep -i "warning" system.log
二、递归搜索整个目录树
使用-r参数可遍历子目录,配合-l仅显示匹配文件名,提高检索效率。
1、在/etc
目录及其子目录中搜索含“root”的配置行:grep -r "root" /etc/
2、只列出包含“listen 80”的配置文件路径:grep -rl "listen 80" /etc/nginx/
3、跳过二进制文件避免乱码输出:grep -r --binary-files=without-match "pattern" ./
三、正则表达式匹配数字与IP地址
grep支持基本正则(BRE),启用-E可使用扩展正则(ERE),便于描述复杂模式如IPv4地址结构。
1、匹配以数字开头的行:grep "^[0-9]" data.txt
2、使用扩展正则查找标准IPv4格式(如192.168.1.1):grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" network.log
3、精确匹配合法IP范围(需结合字边界):grep -E "\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" access.log
四、反向匹配与空行处理
通过-v参数实现反选,结合-c统计行数或-s静默模式可优化结果呈现。
1、显示不包含“#”的非注释行:grep -v "^#" config.conf
2、排除空行和纯注释行:grep -v "^$" config.conf | grep -v "^#"
3、统计不含“success”的日志条目数量:grep -vc "success" app.log
五、高亮匹配关键词并显示行号
添加--color=always可强制高亮,-n参数标记每行原始位置,便于定位上下文。
1、搜索“fail”并高亮显示,同时标注行号:grep -n --color=always "fail" error.log
2、高亮多个关键词(使用扩展正则):grep -E --color=always "(error|fail|panic)" system.log
3、仅高亮不输出匹配行(用于测试正则有效性):grep --color=always -o "pattern" test.txt > /dev/null
# ai
# app
# 配置文件
# 工具
# linux
# linux系统
# Error
# 递归
# 字符串
# access
# NULL
# nginx
# 正则表达式
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11任务栏颜色怎么改_Win11自定义任务栏
- Win11怎么修改DNS服务器 Win11设置DN
- Python文件操作优化_大文件与流处理解析【教程
- c++怎么编写动态链接库dll_c++ __dec
- Win11任务栏怎么调到左边_Win11开始菜单居
- php打包exe怎么传递参数_命令行参数接收方法【
- 如何使用Golang defer优化性能_减少不必
- Win10如何优化内存使用_Win10内存优化技巧
- Win10怎么卸载金山毒霸_Win10彻底卸载金山
- Win10怎样卸载TeamViewer_Win10
- Win11怎么设置默认PDF阅读器 Win11修改
- Windows10系统怎么查看防火墙状态_Win1
- Python解释执行模型_字节码流程说明【指导】
- 如何解决Windows时间不准的问题?(自动同步设
- 如何在 ACF 中正确更新嵌套多层 Group 字
- Python实现图数据库操作_Neo4j核心CRU
- c++输入输出流 c++ cin与cout格式化输
- 如何在Golang中编写异步函数测试_Golang
- Win11怎么关闭搜索历史 Win11清除搜索框最
- php中作用域操作符能访问私有静态属性吗_访问权限
- Linux怎么修改用户密码_Linux系统pass
- Windows10蓝屏SYSTEM_SERVICE
- 如何在Golang中实现RPC异步返回_Golan
- Mac如何设置动态壁纸?(让桌面动起来)
- Mac如何修改Hosts文件?(本地开发与屏蔽网站
- php8.4如何配置ssl证书_php8.4htt
- Win11怎么关闭开机声音_Win11系统启动提示
- Windows10电脑怎么设置自动连接WiFi_W
- Win11怎么连接投影仪_Win11多显示器投屏设
- Win11怎么关闭定位服务_保护Win11位置隐私
- LINUX的SELinux是什么_详解LINUX强
- Win11怎么设置快速访问_Windows11文件
- Win11无法拖拽文件到任务栏怎么办_Win11开
- 如何在 Go 应用中实现自动错误恢复与进程重启机制
- 使用类变量定义字符串常量时如何实现类型安全的 Li
- Win11更新后变慢怎么办_Win11系统更新后卡
- Go 语言标准库为何不提供泛型 Contains
- 如何使用Golang反射创建map对象_动态生成键
- 如何使用Golang实现Web表单数据绑定_自动映
- Win11怎么关闭透明效果_Windows11个性
- 如何在Golang中使用log包输出不同级别日志_
- 如何使用正则表达式提取以编号开头、后接多个注解的逻
- C++如何获取CPU核心数?(std::threa
- Win10怎样清理C盘浏览器缓存_Win10清理浏
- PHP接收参数值为空怎么办_判断和处理空参数方法说
- PHP怎么接收URL中的锚点参数_获取#后面参数值
- 如何使用Golang实现微服务状态监控_Golan
- 手机php文件怎么变成mp4_安卓苹果打开php转
- VSC怎样用终端运行PHP_命令行执行脚本的步骤【
- Python与OpenAI接口集成实战_生成式AI

QQ客服