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; ?>
】
相关推荐
- 如何使用Golang实现云原生应用弹性伸缩_自动应
- c++如何用AFL++进行模糊测试 c++ Fuz
- Win11怎么设置声音输出设备_Windows11
- Win10如何更改开机密码_Windows10登录
- GML (Geography Markup Lan
- php修改数据怎么批量改状态_批量更新status
- Windows的便笺功能如何使用?(桌面备忘技巧)
- Win11资源管理器卡顿怎么办 Win11文件资源
- Win11开机自检怎么关闭_跳过Win11开机磁盘
- Go 中 := 短变量声明的类型推导机制详解
- Windows11怎么用“记事本”自动换行与编码
- Win11如何设置开机问候语 Win11修改登录界
- 如何使用Golang实现跨域请求支持_Golang
- 微信企业付款回调PHP怎么接收_处理企业付款异步通
- C++ static_cast和dynamic_c
- Win11怎么关闭搜索历史_Win11清除任务栏搜
- Win10系统怎么查看端口状态_Windows10
- 如何使用Golang开发简单的聊天室消息存储_Go
- C++如何解析JSON数据?(nlohmann/j
- Win11如何暂停系统更新 Win11暂停更新最长
- c++ unordered_map怎么用 c++哈
- Windows系统被恶意软件破坏后的恢复策略_错误
- Python音视频处理高级项目教程_FFmpegP
- Win11视频默认播放器怎么改_Win11关联第三
- Win10怎样安装PPT模板_Win10安装PPT
- php和redis连接超时怎么办_phpredis
- Mac怎么安装软件_Mac安装dmg与pkg文件的
- 本地php环境出现502错误_nginx或apac
- Win11怎么用设置清理回收站_Win11设置清理
- Win11怎么硬盘分区 Win11新建磁盘分区详细
- Win11怎么查看wifi信号强度_检测Windo
- Python对象比较与排序_魔术方法解析【教程】
- 如何用正则与预处理结合精准拦截拼接式垃圾域名
- 如何使用正则表达式批量替换重复的“-”模式为固定字
- c++如何使用std::bitset进行位图算法_
- 网站内页做seo排名怎么做?
- C++如何使用std::async进行异步编程?(
- Mac如何开启夜览模式_Mac护眼模式设置与定时
- Python包结构设计_大型项目组织解析【指导】
- Win11怎么关闭任务栏小组件_Windows11
- Win11怎么设置默认输入法 Win11固定中文输
- phpstudy本地环境mysql忘记密码_重置m
- Windows10系统怎么查看CPU温度_Win1
- 如何在JavaScript中动态拼接PHP的bas
- Win11怎么开启窗口对齐助手_Windows11
- Windows10系统怎么查看显卡型号_Win10
- Mac如何调整Dock栏大小和位置_Mac程序坞个
- Python类装饰器使用_元编程解析【教程】
- PHP cURL GET请求:正确设置认证与自定义
- Windows10如何删除Windows.old_

QQ客服