本文是“Linux·基础篇”的配套练习题,旨在通过反复实操巩固 Linux 核心命令与系统管理技能。
本文题目要求从给定的日志文件中筛选出“错误级别”的日志。
• 等级:初级 • 难度:★☆☆☆☆
[本文基于 CentOS Linux release 7 系统环境]
在实际的 Linux 系统管理工作中,我们经常需要从日志文件中查找特定错误信息。本题要求从给定的日志文件中筛选出“错误级别”的日志。
【注】需要查找包含任意大小写组合的“error”(如 error、ERROR、Error、ErRoR 等)的所有行。
创建日志示例文件 app.log。
cat > app.log << 'EOF'1970-01-01 10:00:00 INFO: Application started1970-01-01 10:00:05 ERROR: Database connection failed1970-01-01 10:00:10 WARN: High memory usage1970-01-01 10:00:15 eRrOr: File not found: config.ini1970-01-01 10:00:20 info: User login successful1970-01-01 10:00:25 Error: Permission denied1970-01-01 10:00:30 ERROR: Failed to load module 'security'1970-01-01 10:00:35 FATAL: System crash detected1970-01-01 10:00:40 error: Disk space low1970-01-01 10:00:45 WARNING: CPU temperature high1970-01-01 10:00:50 ErRoR: Network timeout1970-01-01 10:00:55 DEBUG: Processing request ID 123451970-01-01 10:01:00 ERRORS: Multiple validation errors detected1970-01-01 10:01:05 ERROR_CODE: 5001970-01-01 10:01:10 INFO: Recovery process startedEOF或者,你也可以自己准备类似的日志文件。
根据题目描述,本题主要考查忽略大小写的关键词查找。我们常使用 grep 命令来进行简单的关键词查找,可使用 -i 参数来忽略大小写。
搜索关键词“error”,不区分大小写:
grep -i "error" app.log搜索关键词“ERROR”,不区分大小写:
grep -i "ERROR" app.log1970-01-01 10:00:05 ERROR: Database connection failed1970-01-01 10:00:15 eRrOr: File not found: config.ini1970-01-01 10:00:25 Error: Permission denied1970-01-01 10:00:30 ERROR: Failed to load module 'security'1970-01-01 10:00:40 error: Disk space low1970-01-01 10:00:50 ErRoR: Network timeout1970-01-01 10:01:00 ERRORS: Multiple validation errors detected1970-01-01 10:01:05 ERROR_CODE: 500若使用 grep 不加 -i 选项,则区分大小写。
搜索关键词“error”,区分大小写:
grep "error" app.log 输出示例:
1970-01-01 10:00:40 error: Disk space low1970-01-01 10:01:00 ERRORS: Multiple validation errors detected搜索关键词“ERROR”,区分大小写:
grep "ERROR" app.log输出示例:
1970-01-01 10:00:05 ERROR: Database connection failed1970-01-01 10:00:30 ERROR: Failed to load module 'security'1970-01-01 10:01:00 ERRORS: Multiple validation errors detected1970-01-01 10:01:05 ERROR_CODE: 500更多有关 grep 的基本使用方法和示例,可参考往期文章:《【Linux·基础篇】Shell 基础|常用命令·文本处理三剑客:grep》。
此番炼器手札,炉火尚未全熄。若道友观之有趣,或可暂留此间,结一尘缘。待下回开炉铸器,新得感悟,必先与同道分享。