[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何统计文本中含有指定字符串的行的数量?

BAT求助!
如何从文本文件中提取指定文本的数量,例如,a.txt内容如下:
正在 Ping 103.88.16.4 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
103.19.66.4 的 Ping 统计信息:
    数据包: 已发送 = 10,已接收 = 0,丢失 = 10 (100% 丢失),
如何自动计算出其中有多少个"请求超时"呢?

  1. //&cls& dir /a-d/b *.txt|cscript -nologo -e:jscript "%~0"&pause&exit/b
  2. var fso=new ActiveXObject("scripting.filesystemObject");
  3. while (!WSH.StdIn.AtEndOfStream){
  4. f=WSH.StdIn.ReadLine();
  5. text=fso.OpenTextFile(f,1).Readall();
  6. arr=text.match(/请求超时/g)||[]
  7. count=arr.length;
  8. file=fso.OpenTextFile("result.txt",8,1)
  9. file.write('文件'+f+'中的重复次数:'+count+'\r\n');
  10. file.close();
  11. }
复制代码

TOP

find "请求超时" /c test.txt

TOP

test.ps1
  1. (gc 1.txt | Select-String "请求超时").count
复制代码
环境所限,需要使用 PowerShell 2.0 版本。

TOP

返回列表