javascript - 解析日志文本
问题描述
我有这个日志文本:
1. SNMPv2-SMI::enterprises.37447.2.1.1.1 type=4 value=STRING: "Test warn level"
2. SNMPv2-SMI::enterprises.37447.2.1.1.2 type=4 value=STRING: "WARN"
3. SNMPv2-SMI::enterprises.37447.2.1.1.3 type=4 value=STRING: "PSBA2STOR051"
4. SNMPv2-SMI::enterprises.37447.2.1.1.4 type=4 value=STRING: "AF-201969"
5. SNMPv2-SMI::enterprises.37447.2.1.1.5 type=4 value=STRING: "PSBA2STOR051"
6. SNMPv2-SMI::enterprises.37447.2.1.1.6 type=4 value=STRING: "117813866"
7. SNMPv2-SMI::enterprises.37447.2.1.1.7 type=4 value=STRING: "test"
8. SNMPv2-SMI::enterprises.37447.2.1.1.8 type=4 value=STRING: "test"
请注意,我的日志中不存在订单号
我只需要提取
Test warn level
test
test
结果需要:测试警告级别:test-test
我试过这个:
(SNMPv2-SMI::enterprises.37447.2.1.1.1.*)\n.*\n.*\n.*\n.*\n.*\n(.*SNMPv2-SMI::enterprises.37447.2.1.1.7.*)\n(.*SNMPv2-SMI::enterprises.37447.2.1.1.8.*)
但它不像我需要的那样工作它返回孔线
解决方案
你可以做:
sed -e 's/.*37447.2.1.1.[178].*"\(.*\)"/\1/;t;d' test.log
正则表达式搜索包含 37447.2.1.1.1、.7 或 .8 的行:37447.2.1.1.[178]
在这些行中,仅取引号之间的内容:"\(.*\)"
不匹配的行 ( t
) 被抑制 ( d
):t;d
推荐阅读
- spring-boot - keycloak授权服务器如何使用spring rest适配器验证授权规则
- android - 如何返回异步等待承诺
- android - sdk 的 targetSdkVersion 更改为 26
- javascript - 如果 ajax 轮询时间超过 x 秒,则添加一个类
- python - 使用 scikit learn 进行线性回归的统计分析
- php - Symfony 4.1 application redirectes to an external URL in another machine
- mysql - 64 位整数实际上有限制吗?
- javascript - 如何在 ReactJs 中单击单选按钮时显示弹出窗口
- ios - 应用程序在运行 iOS 9.2.1 或更低版本的设备上崩溃(不是 P3 图像)
- android - 如何使用 scenform 获取 Google Measure App 等对象的高度