我想搜索许多 .log 文件以查找特定的错误发生。以下 shell 代码为我提供了必须检查每个 .log 文件的行,该文件在最后 5 行中声明“错误终止”:
for f in *.log; do
tail -n 5 "$f" | grep -q "Error termination" && tac "$f" | grep -m 1 "Step number";
done
这导致输出如下:
Step number 40 out of a maximum of 216
Step number 17 out of a maximum of 192
Step number 25 out of a maximum of 216
Step number 192 out of a maximum of 192
Step number 21 out of a maximum of 200
每行对应一个 .log 文件。现在我想比较两个整数并仅在整数相同时打印文件名。