返回列表 发帖
软件名称:超级批量文本替换(BatchTextReplace)
这个软件可以满足你的要求,其实你要的就是去掉:2014-05-13 00:00:00,003 INFO 这样的信息。
你可以在替换中选择"特征替换",开始标志“2014-”,结束标志“ INFO”
就会将这些正常信息全部去掉,剩下的就是有提示的错误信息。。。。

TOP

回复 15# poi


    请看13楼

TOP

@if(0)==(0) echo off
CScript.exe //NoLogo //E:JScript "%~f0" <q.txt
pause&goto:eof
@end
while (!WScript.StdIn.AtEndOfStream){
    var str = WScript.StdIn.Readline();
    f = str.match(/^(\d{4}-\d{2}-\d{2})\b/);
    if (f){
       f = str.match(/ERROR\s*$/);
       if (f) WScript.Echo(str);
    };
    else {WScript.Echo(str)};
}COPY

TOP

回复 18# terse


什么啊 直接看不懂~~

TOP

回复 19# poi
这个 处理文件名为 Q.txt 的文件 如有变动 请自行修改 第二行行尾的 <q.txt

TOP

我截取了下,但是这个效率很差,能优化不???
@echo off
setlocal EnableDelayedExpansion
(for /f "delims=" %%i in (1.txt) do (
    set "str=%%i"
     set "str=%%i"
    set "newStr=!str:~0,300!"
    echo "!newStr!" | findstr "^.....-..-...*ERROR" > nul
    if !errorlevel! equ 0 (
        echo !str!
    ) else (
        echo "!newStr!" | findstr "^.....-..-.." > nul
        if !errorlevel! neq 0 (
            echo !str!
        )
    )
))>100.txt
pauseCOPY

TOP

回复 20# terse


    你这个怎么运行啊~~

TOP

回复 22# poi
保存为BAT文件 和处理文件同一目录

TOP

回复 23# terse


    你这个没有实现!!有点问题~~

TOP

仅用一楼数据测试

TOP

回复 25# terse
你用这个试试,你的这个好像把时间开始行取消掉了~
2014-05-15 00:00:00,007 INFO  [STDOUT] 00:00:00,007 FATAL adminManagerfile:51
SSSSSS
2014-05-15 00:00:39,524 ERROR  [STDOUT] 00:00:39,524 FATAL ExtractPerformanceDataServiceImpl:31
2014-05-15 00:03:14,480 INFO  [STDOUT] 00:03:14,480 ERROR SocketClientUtils:97 - * BYE ?????í?ó???????ó????
FFRSFGRG
SDFSDFCOPY

TOP

回复 26# poi

代码第九行 换为下面的试
f = str.match(/\bERROR\b/);COPY

TOP

返回列表