只有grep包含特定字符串的文件部分

时间:2016-09-17 01:49:51

标签: awk

我想更容易找到特定用户的日志,我想只对包含字符串15120000000的部分进行grep /过滤。部分是以时间戳开头的行(9月16日19:31:46 in这个例子。或者它可能是以“Sep 16”开头的每行。是否可以使用grep或awk?提前感谢所有的帮助。

这是日志样本。

Sep 16 19:31:46 da1psbc05pev kamailio[31135]: INFO: <script>: onreply_route Rcvd [487] response from[25.11.214.107:5061] MsgId[6384483] From[sip:15120000000@3bc.cloud.comptel.com] callid[f91a7279-15751118-6c5f65af@192.168.1.58]

SIP/2.0 487 Request Terminated
From: "TAC Offnet"<sip:15120000000@3bc.cloud.comptel.com>;tag=B251F2AD-C3A0DEEC
To: <sip:0001@3bc.cloud.comptel.com;user=phone>;tag=dc25d928-0-13c4-6006-cb98c-2310cd2b-cb98c
Call-ID: f91a7279-15751118-6c5f65af@192.168.1.58
CSeq: 1 INVITE
Via: SIP/2.0/TLS 25.11.214.72:5061;alias;rport=54928;branch=z9hG4bKbbd9.62d12aaf57f6574fd99b719735009993.0;i=4e0f7
Via: SIP/2.0/TLS 192.168.1.58:36304;received=199.199.199.122;rport=36304;branch=z9hG4bK47084e2320E46012
Supported: timer,replaces,info
User-Agent: compGear/21.79.9310.0 (compTel 15)
Content-Length: 0

Sep 16 19:31:46 DaHostname kamailio[31135]: : <core> [msg_translator.c:553]: lump_check_opt(): ERROR: lump_check_opt: null send socket
Sep 16 19:31:46 DaHostname kamailio[31135]: : <core> [msg_translator.c:553]: lump_check_opt(): ERROR: lump_check_opt: null send socket
Sep 16 19:31:46 DaHostname kamailio[31135]: INFO: <script>: onsend_route Dumping MsgId[6384483] sending to[199.199.199.122:36304] size[556]  callid[f91a7279-15751118-6c5f65af@192.168.1.58]

SIP/2.0 487 Request Terminated
Record-Route: <sip:25.11.214.72:5061;transport=tls;transport=tls;lr=on>
From: "TAC Offnet"<sip:15120000000@3bc.cloud.Comptel.com>;tag=B251F2AD-C3A0DEEC
To: <sip:0000@3bc.cloud.Comptel.com;user=phone>;tag=dc25d928-0-13c4-6006-cb98c-2310cd2b-cb98c
Call-ID: f91a7279-15751118-6c5f65af@192.168.1.58
CSeq: 1 INVITE
Via: SIP/2.0/TLS 192.168.1.58:36304;received=199.199.199.122;rport=36304;branch=z9hG4bK47084e2320E46012
Supported: timer,replaces,info
User-Agent: CompGear/21.79.9310.0 (CompTel 15)
Content-Length: 0


Sep 16 19:31:46 DaHostname kamailio[31141]: INFO: <script>: onreply_route Rcvd OPTIONS [200] response from[201.125.123.125:46518] MsgId[6331041] From[sip:sips:3] callid[CompTel_1474068706-1077690787]

2 个答案:

答案 0 :(得分:2)

假设部分用一个或多个空行分隔

$ awk -v RS= '/15120000000/' file

应该

答案 1 :(得分:-1)

感谢您的回答。这给了我我想要的东西。

awk&#39; BEGIN {RS =&#34; Sep 16&#34 ;; ORS =&#34; Sep&#34;} / 5120000000 / {print}&#39;的/ var /日志/日志

我使用时间戳的日期部分作为记录分隔符(9月16日),然后根据数字512000000选择记录。因此该部分工作得非常好。

现在,有没有办法让它变得动态?如何让RS从1月到12月选择任何值?感谢。