需要使用Windows XP / 7批处理文件从文本文件中删除行

时间:2013-11-07 05:25:13

标签: windows search batch-file

我有一个脚本,它搜索日志文件并找到一串字符:即“[501005]”,不带引号。在某些行中,该字符串后面紧跟一个变量字,即“[501005] RF”。在某些行上,字符串后跟两个空格,然后是一个变量号,即“[501005] 02”。我只需要没有空格的线条。由于存在太多可能性,我无法仅搜索其他特定字符串后面的字符串。我使用

收到错误
findstr /i /v "]  " /c:"[501005" *inputfile* > *outputfile*

如果我删除/ v“]”参数,我得到所有包含我的字符串的行,所以我知道搜索有效。我唯一挂断的是消除不必要的线条。这是一个示例(如您所见,行数也是可变的):

2013/10/30 00:04:26  [501005]INT_L3_ATCS  010.1.11 (28b)  TX  29 bytes
2013/10/30 00:04:26  [501005]  02 8B 25 00 60 00 AE 73 4A 5A 1A A5 A2 A2 23 4A 
2013/10/30 00:04:26  [501005]  A3 55 A1 00 34 02 02 12 48 03 00 00 08 
2013/10/30 00:04:26  [501005]CODELINE_INDICATION_MSG 010.150.006.046 010.1.11 (28b)  RX  33 bytes
2013/10/30 00:04:26  [501005]  02 8B 64 00 8A 5E EA 23 4A A3 55 A1 73 4A 5A 1A 
2013/10/30 00:04:26  [501005]  A5 A2 A2 00 92 02 02 12 8B 03 00 03 08 00 00 01 
2013/10/30 00:04:26  [501005]  3D 
2013/10/30 00:04:26  [501005]RF_L3_ACK 010.1.11 (28b)  TX  12 bytes
2013/10/30 00:04:26  [501005]  02 8B 34 8C 0E 73 4A 5A 1A A5 A2 A2 

3 个答案:

答案 0 :(得分:0)

findstr "[501005]" input.txt | findstr /V /C:"]  " > output.txt

答案 1 :(得分:0)

这应该删除带有空格的行:

findstr /l /v /c:"] " inputfile > outputfile

答案 2 :(得分:0)

删除[501005]后跟两个空格的行:

findstr /vc:"\[501005]  " input.txt>output.txt