0

我正在尝试从文本文件中解析特定信息。我希望能够接受以下文本:

&15:44:25.3911456_0089& SIPEngine 0x208c  
N SIPUDPTransport::process_message() : 远程=10.250.2.18:5060,消息=
收件人:sip:%QBE-JV9SKV1-SP%@10.250.2.18:5060;tag=6642

&15:44:31.7504799_0013& SIPEngine 0x2014  
N SIPUDPTransport::process_message() : 远程=10.250.2.85:5060,消息=
到:sip:%QBE-75FHBW1-SP%@10.250.2.85:5060;tag=11225

并将其解析为以下数据:

15:44:25.3911456_0089,QBE-JV9SKV1-SP
15:44:31.7504799_0013,QBE-75FHBW1-SP

和被添加到那里作为分隔符&%我可以通过查找和替换来获得创意以添加这样的分隔符。

任何有关如何解析这样的数据的帮助将不胜感激。我一直在尝试使用SED,FOR /F和其他实用程序,但我还没有多少运气。信息的模式总是一个接一个地重复。

本质上,我只是试图识别文本文件中的分隔字符串并输出它们,所以我希望这也可以帮助其他人。

提前感谢您的帮助!

4

1 回答 1

1

尝试这个:

@echo off&setlocal
(for /f "tokens=1,2delims=&%%" %%i in ('findstr "SIPEngine QBE" file.txt') do (
    set "line1=%%i"
    set "line2=%%j"
    setlocal enabledelayedexpansion
    if "!line2:SIPEngine=!" neq "!line2!" (<nul set/p"=!line1!,"
    ) else if "!line2:QBE=!" neq "!line2!" echo(!line2!
    endlocal
))>out.txt
type out.txt

..输出是:

15:44:25.3911456_0089,QBE-JV9SKV1-SP
15:44:31.7504799_0013,QBE-75FHBW1-SP
于 2013-05-17T21:19:14.897 回答