如何使用Windows命令行工具或批处理文件从日志文件中提取行?

atr*_*lla 1 regex powershell batch-file

我想使用本机Windows命令行工具或批处理文件(.bat)从日志文件中提取某些行.这是一个示例日志文件:

2009-12-07 14:32:38,669 INFO  Sample log
2009-12-07 14:32:43,029 INFO  Sample log
2009-12-07 14:32:45,841 DEBUG Sample log
2009-12-07 14:32:45,841 DEBUG Sample log
2009-12-07 14:32:52,029 WARN  Sample log
2009-12-07 14:32:52,466 INFO  Sample log
Run Code Online (Sandbox Code Playgroud)

如何提取和打印带有"WARN"标签的行?如何使用PowerShell执行此操作?

Mar*_*nen 7

单程:

findstr WARN log.txt
Run Code Online (Sandbox Code Playgroud)

更复杂:

for /f "tokens=1,2,3,4* delims=, " %i in (log.txt) do @if "%l"=="WARN" echo %i %j %m

OUTPUT:
2009-12-07 14:32:52 Sample log
Run Code Online (Sandbox Code Playgroud)


Alo*_*lon 7

您可以使用select-stirng使用PowerShell执行此操作:

select-String  WARN  *.log 
Run Code Online (Sandbox Code Playgroud)