返回列表 发帖

[文本处理] BAT批处理如何读取txt中包含指定字符串的行?

需求
文本格式:
如:
2014-05-13 00:00:00,003 INFO  
2014-05-13 00:00:00,019 INFO
sdsaldsdlfkjld
2014-05-13 00:01:25,145 ERROR
2014-05-13 00:03:00,037 INFO
sdsaldsdlfkjld
2014-05-13 00:03:00,037 ERROR  
2014-05-13 00:05:37,695 INFO  
2014-05-13 00:10:10,339 INFO
sdsaldsdlfkjld
test
1COPY
需要显示的结果:
sdsaldsdlfkjld
2014-05-13 00:01:25,145 ERROR
sdsaldsdlfkjld
2014-05-13 00:03:00,037 ERROR  
sdsaldsdlfkjld
test
1
COPY
需求:
1.每行以时间开始的并且还很ERROR字符 则输出到新文件
2.每行不是时间开始的直接输出到新文件
注意:非时间开始的行可能有特殊字符如:<a></a>
--------------------------------------------------------------------------------
我写了一个,单个运行可以一起就有问题
@echo off & setlocal EnableDelayedExpansion
for /f "delims=""" %%i in (QQ.txt) do (
   set "str=%%i"
    echo !str!  |findstr "^[0-9][0-9][0-9][0-9] ERROR ">>1.txt
    echo !str!  |findstr  /V  "^[0-9][0-9][0-9][0-9]">>1.txt
)
pauseCOPY

坐等大神们回复·~~

TOP

[quote]坐等大神们回复·~~

TOP

回复 3# PowerShell
还会有其他字符  不能按info处理

TOP

回复 6# DAIC

按上面代码可以,但上面说了txt里可能含有<a>0215138009</a>

所以运行bat会有三种错误
1.此时不应有 <。
2.命令语法不正确。
3.系统找不到指定的文件。

----怎么让他忽略txt里的特殊字符????

TOP

回复 10# DAIC
嗯  谢谢~
没问题了,还有就是问下bat处理txt一般能处理多大·~,几十M应该没问题·~
我刚试了下10m 运行了好久  等会我算下时间

TOP

回复 10# DAIC
有的行太长报错怎么办?
报:findstr:行1太长。

TOP

本帖最后由 poi 于 2014-5-15 17:09 编辑

还有我的文本一般在10-30m
有的行可能也很多~~
有什么好的方法没(效率能提高的)???

我们现在使用html 用js提取这些信息,也要分割文件~~
如果bat也要分割就没多大意义了·~

TOP

回复 18# terse


什么啊 直接看不懂~~

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

回复 23# terse


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

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

返回列表