我的一台服务器中有一些日志文件,其中包含下面提到的日志条目。
FTM.FC103.20181228034503.20181228035250:2018-12-28 08:19:59.893 失败丢弃:重新发送尝试失败次数过多,请求 ID 失败:8397796 原因:未知信息:代码:,USSD RequestId=8397796 OriginalId=8397545关系ID =“03a4264124 “ CreationTime="20181228081949" ResendCount=1 时间戳=1545968994377(2018 年 12 月 28 日星期五 08:19:54 AFT 2018) State=STATE_SENT订阅者编号=96700606310UssdText=上次活动费用为 3.00 RYL,持续时间 0:00:52,剩余余额 35.29 AFN,将于 25.12.2020.1500 RYL = 32GB 有效期 30 天,拨打 *811*32*1#。 NumberingPlan=1 楠迪=4 UssdFormat=2
我想从这些日志中提取以下信息:
1- 从日志文件中提取所有 SubscriberNumber。
2- 然后找到在日志中多次出现的 SubscriberNumbers。
答案1
你可以使用:
grep -oP 'SubscriberNumber=\K(\d+)' logfile | sort -n | uniq -cd
- grep -oP '订阅者编号=\K(\d+)' 日志文件将所有单独的 SubscriberNumbers 与您的
logfile
;隔离开来 - 排序-n按数字对它们进行排序,并且
- uniq-cd打印任何重复的数字,即多次出现的数字,包括计数。