[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
软件名称:超级批量文本替换(BatchTextReplace)
这个软件可以满足你的要求,其实你要的就是去掉:2014-05-13 00:00:00,003 INFO 这样的信息。
你可以在替换中选择"特征替换",开始标志“2014-”,结束标志“ INFO”
就会将这些正常信息全部去掉,剩下的就是有提示的错误信息。。。。

TOP

回复 15# poi


    请看13楼

TOP

  1. @if(0)==(0) echo off
  2. CScript.exe //NoLogo //E:JScript "%~f0" <q.txt
  3. pause&goto:eof
  4. @end
  5. while (!WScript.StdIn.AtEndOfStream){
  6.     var str = WScript.StdIn.Readline();
  7.     f = str.match(/^(\d{4}-\d{2}-\d{2})\b/);
  8.     if (f){
  9.        f = str.match(/ERROR\s*$/);
  10.        if (f) WScript.Echo(str);
  11.     };
  12.     else {WScript.Echo(str)};
  13. }
复制代码

TOP

回复 18# terse


什么啊 直接看不懂~~

TOP

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

TOP

我截取了下,但是这个效率很差,能优化不???
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. (for /f "delims=" %%i in (1.txt) do (
  4.     set "str=%%i"
  5.      set "str=%%i"
  6.     set "newStr=!str:~0,300!"
  7.     echo "!newStr!" | findstr "^.....-..-...*ERROR" > nul
  8.     if !errorlevel! equ 0 (
  9.         echo !str!
  10.     ) else (
  11.         echo "!newStr!" | findstr "^.....-..-.." > nul
  12.         if !errorlevel! neq 0 (
  13.             echo !str!
  14.         )
  15.     )
  16. ))>100.txt
  17. pause
复制代码

TOP

回复 20# terse


    你这个怎么运行啊~~

TOP

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

TOP

回复 23# terse


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

TOP

仅用一楼数据测试

TOP

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

TOP

回复 26# poi

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

TOP

返回列表