grep是Linux中高效的文本搜索工具,通过正则表达式和多种选项(如-i、-v、-r、-C)实现精准查找,可结合zgrep、find、tail等命令处理压缩日志、递归搜索及实时监控,适用于日志分析、代码审计和配置管理,极大提升信息筛选效率。

grep
grep
grep
一个最简单的例子,如果你想在一个名为
access.log
grep "error" access.log
如果想忽略大小写,比如同时匹配“Error”、“ERROR”和“error”,只需加上
-i
grep -i "error" access.log
当你需要查看匹配行的上下文时,
-A
-B
-C
grep -C 3 "failed login" /var/log/auth.log
在多个文件中递归搜索特定内容,比如在一个项目目录中查找所有
.py
grep -r
grep -r
grep -r "import pandas" ./my_python_project/
而如果你想反向查找,即显示所有不包含某个模式的行,
-v
grep -v "INFO" application.log

处理庞大的日志文件,特别是那些经过压缩或分散在多个目录下的日志,确实是个挑战。但
grep
首先,对于那些按日期归档并压缩(如
.gz
grep
zcat
zgrep
zcat
grep
zcat /var/log/nginx/access.log.2023-10-26.gz | grep "404 Not Found"
如果你不确定错误信息具体在哪天的日志里,或者想在所有历史日志中搜索,可以结合
find
find
-exec
grep
zcat
grep
zgrep
find /var/log/nginx -name "access.log.*.gz" -exec zgrep -l "Internal Server Error" {} \;这里
-l
在实时监控日志时,
tail -f
grep
tail -f /var/log/syslog | grep "failed connection"
有时候,日志文件会非常大,直接
grep
sed
awk
grep
grep

grep
默认情况下,
grep
grep -E
egrep
举几个例子:
|
grep -E "error|fail|exception" application.log
grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log这里
^
[0-9]{1,3}\.
SID-XXXX-YYYY
X
Y
grep -E "SID-[0-9]{4}-[0-9]{4}" debug.log\b
grep -w "user" auth.log # 或者使用扩展正则表达式的 \b grep -E "\buser\b" auth.log
-w
\b
grep -E "[^0-9]" data.txt
正则表达式的世界非常广阔,从简单的字符匹配到复杂的捕获组和回溯引用,它赋予了
grep

grep
在代码审计方面:
grep -r
mysql_query
grep -r "mysql_query(" ./my_php_project/这会递归地在整个项目目录中查找所有包含
mysql_query(
grep
grep -rE "password=|api_key=|secret=" ./my_project/
这里使用
-E
grep -r "log.error(" ./src/这能帮你快速建立对代码结构和行为的初步认识。
在配置管理方面:
grep -E "^Port|Listen" /etc/ssh/sshd_config
这会显示 SSH 服务配置中关于端口和监听地址的设置,
^
grep -E "^#Port" /etc/ssh/sshd_config
diff
grep
grep "max_connections" /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
这会同时在两个配置文件中查找
max_connections
总的来说,
grep
grep
以上就是Linux文本搜索命令grep应用实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号