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任务栏颜色怎么改_Win11自定义任务栏
- Windows10任务栏图标变成白色文件_Win1
- 如何在 Python 测试中动态配置 @backo
- Win11怎么关闭通知消息_屏蔽Windows 1
- Python与Docker容器化部署实战_镜像构建
- Python高性能计算项目教程_NumPyCyth
- 如何在JavaScript中动态拼接PHP的bas
- Golang如何测试HTTP中间件_Golang
- Python集合操作技巧_高效去重解析【教程】
- Win11开机Logo怎么换_Win11自定义启动
- Win11怎么自动隐藏任务栏_Win11全屏显示设
- Windows10系统服务优化指南_Win10禁用
- Windows10如何更改桌面背景_Win10个性
- Win11怎么设置屏保_Windows 11屏幕保
- 如何将竖排文本文件转换为横排字符串
- 如何诊断并终止卡死的 multiprocessin
- mac怎么打开终端_MAC终端Terminal使用
- PHP 中如何在函数内持久修改引用变量所指向的目标
- Windows11怎样开启游戏模式_Windows
- Windows 11登录时提示“用户配置文件服务登
- php怎么操作Redis_Redis扩展连接与基本
- 如何在 Go 中创建包含映射(map)的切片(sl
- Go语言中CookieJar的持久化机制解析:内存
- Win11怎么设置ipv4地址_Windows 1
- Win11讲述人怎么关闭_Win11误触开启语音朗
- Linux怎么禁止Root用户远程登录_Linux
- Win11怎么打开旧版计算器_Win11恢复传统计
- Windows10系统怎么查看IP地址_Win10
- Win11怎样彻底卸载自带应用_Win11彻底卸载
- 如何在 VS Code 中正确配置并使用 NumP
- Win11文件扩展名怎么显示 Win11查看文件后
- Win10如何更改任务栏高度_Windows10解
- Windows10如何更改系统字体大小_Win10
- Windows家庭版如何开启组策略(gpedit.
- Python与MongoDB NoSQL开发实战_
- 如何在 Go 同包不同文件中正确引用结构体
- Win11如何添加/删除输入法 Win11切换中英
- SAX解析器是什么,它与DOM在处理大型XML文件
- Mac电脑进水了怎么办_MacBook进水后紧急处
- 如何使用Golang管理模块版本_Golanggo
- 如何使用Golang包导出规则_控制函数和变量可见
- Win11怎么设置默认浏览器Chrome_Wind
- Windows10无法连接到Internet_Wi
- 如何在Golang中实现服务熔断与限流_Golan
- Win10怎么卸载鲁大师_Win10彻底卸载鲁大师
- php做exe支持多线程吗_并发处理实现方式【详解
- Windows怎样关闭开始菜单广告_Windows
- Win11如何设置自动关机 Win11定时关机命令
- Win11如何设置开机自动联网 Win11宽带连接

QQ客服