2017-08-10 64 views
1

我有大约1k个日志来每天晚上拉和解析。批量解析3个变量并压缩为1个字符串

这个想法是在4个关键字中的1个关键字的所有日志上运行findstr。例如:

FINDSTR /s /i /c:"keyword" *.* >> Findstrresult.txt 

一旦这样跑了我就可以看到一切都在它“关键字”,可以进一步解析它。

这是我卡住的地方。我可以自己抽出我想要的每个变量。例如:

FOR /F "tokens=3 delims= " %%a in (Findstrresult.txt) do (
FOR /F %%b in ("%%a") do Echo %%~b >> Number.txt 
) 

这会产生一个1k数字的列表。

不同的令牌/分隔符会导致1k名称列表。

不同的记号/分隔符会导致1k次的列表。

每个都在自己的文本文件中。

我想什么做的是拉他们一下午时间,然后彼此相邻写他们在一个字符串转换成一个文本文件,像这样:

编号,名称,时间

我好关。我只需要一些建议。

谢谢。

+0

不知道关于您的关键字日志文件结构的任何东西都很难grep你的意思。在你编辑的问题中用一些样本行最好[mcve]。我会使用Pwershell这个'sls * -Pattern'keyword1 | keyword2 | keyword3'-context 2,2' – LotPings

回答

0
(
FOR /F "delims= " %%a in (Findstrresult.txt) do (
FOR /F "tokens=3 delims= " %%b in ("%%a") do ( 
    FOR /F "tokens,delims for name" %%n in ("%%a") do (
    FOR /F "tokens,delims for time" %%t in ("%%a") do (
    echo %%b,%%n,%%t 
    ) 
) 
) 
) 
)>combinedresult.txt 

在同一时间阅读您的文件一行到%%a,然后解析%%a三种方式。嵌套0​​s保持范围内的每个元变量。

将括号中的整个例程括起来允许将echo收集并重定向到新文件。如果您愿意,可以使用>>将它追加到现有文件中。

+0

非常感谢你,我会试试这个。我感谢您抽出时间发表评论。 – Heave20

+0

我欠你一笔感谢。非常感谢你,我只是扩大了我的知识。 – Heave20