
15个救命grep命令,运维人必存!
2025年07月30日 21:02
以下文章来源于开源运维 ,作者开源运维
开源运维 在文件 输出: 使用 输出: 在目录 输出: 统计字符串 输出: 列出所有包含 输出: 显示包含 输出: 使用 输出: 用 输出: 以下命令分别演示: 输出: 输出: 输出: 用 输出: 在 输出: 用 输出: 在递归搜索中,排除 输出: 用 输出:(假定 通过管道,结合其他 Linux 命令处理网络信息: 输出: 掌握 grep
是 Linux 系统中处理文本文件的强大工具。无论是系统管理员、开发人员还是日常用户,都常用它来搜索和过滤文件中的文本。以下用 15 个实际例子展示如何高效使用 grep
命令,并对输入输出进行演示。1.在文件中查找指定字符串
sample.log
中查找包含字符串 error
的所有行:grep "error" sample.log
2023-10-13 09:32:22 - Error: Cannot connect to database
2023-10-13 10:02:45 - Error: Missing configuration file2.忽略大小写进行搜索
-i
参数,可以忽略大小写,匹配 error
和 ERROR
:grep -i "error" sample.log
2023-10-13 09:32:22 - Error: Cannot connect to database
2023-10-13 10:02:45 - ERROR: Disk space is full
2023-10-13 10:02:45 - Error: Missing configuration file3.递归搜索目录中的文件
/path/to/logs
中查找所有文件中包含 function
的行:grep -r "function" /path/to/logs
/path/to/logs/file1.log:35:Found function main()
/path/to/logs/file2.log:12:function add(a, b)4.统计匹配的次数
total
在文件中出现的次数:grep -c "total" sample.log
3
5.只显示包含匹配内容的文件名
config
的文件名:grep -l "config" *.txt
file1.txt
file2.txt6.查找时显示具体行号
main
的行及所在行号:grep -n "main" app.py
10:def main():
65:# Call main function7.反向查找
-v
选项显示不包含 #
的行:grep -v "#" /etc/nginx/nginx.conf
server {
listen 80;
server_name example.com;
}8.精确匹配一个单词
-w
参数只匹配完整单词而不是部分字符串:grep -w "error" sample.log
2023-10-13 09:32:22 - Error: Cannot connect to database
2023-10-13 10:02:45 - Error: Missing configuration file9.显示匹配字符串的上下文
-A
:显示匹配行后面几行-B
:显示匹配行前面几行-C
:显示匹配行前后几行grep -A 2 "error" sample.log # 匹配行和后两行
Error: Cannot connect to database
Recovery process started
Recovery process completedgrep -B 1 "error" sample.log # 匹配行和前一行
Initialization completed
Error: Missing configuration filegrep -C 1 "error" sample.log # 匹配行上下各一行
Initialization completed
Error: Missing configuration file
Restarting service10.只显示匹配的内容
-o
参数仅显示匹配内容,而不是整行:grep -o "ERROR.*" sample.log
ERROR: Disk space is full
Error: Missing configuration file11.在压缩文件中查找字符串
.gz
压缩文件内搜索 critical
:zgrep "critical" log.gz
[CRITICAL] System failure at node-1
12.使用正则表达式匹配
-E
或等价的 egrep
,匹配 error
或 fail
开头的行:grep -E "^(error|fail)" sample.log
error: Configuration missing
fail: Could not start service13.递归搜索时排除特定文件类型
.log
文件:grep -r --exclude="*.log" "DEBUG" /path/to/logs
/path/to/logs/script.py:DEBUG: Starting process
/path/to/logs/setup.py:DEBUG: Initializing configurations14.按固定字符串匹配
grep -F
仅匹配固定字符串,忽略正则表达式:grep -F ".*" sample.log
.*
是文件中存在的一段固定字符)This is a test.*
error: Configuration missing.*15.结合管道符过滤复杂结果
ifconfig | grep -A 2 "eth0"
eth0: flags=4163<UP,BROADCAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255grep
的灵活用法,可以高效完成多种文本搜索任务。无论是普通字符串查找、复杂的正则表达式匹配,还是结合其他命令进行管道处理,grep
都提供了强大的功能支持。开源运维分享优质GitHub开源项目的安装教程。290篇原创内容公众号