[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
数据量大 这个估计也够呛 试试吧
  1. 1>1/* :
  2. @echo off
  3. cscript -nologo -e:jscript "%~f0"<a.txt >b.txt
  4. pause&exit
  5. */
  6. while (!WScript.StdIn.AtEndOfStream)
  7. {
  8.        var text = WScript.StdIn.ReadLine(),
  9.        ar = text.replace(/-+/g,'-').split('-'),
  10.        re = new RegExp(ar[0],"i");
  11.        if (re.test(ar[1]) | re.test(ar[2]) ) { WSH.Echo( text )};
  12. }
复制代码

TOP

回复 15# hfxiang


    下载哪个   有点蒙

TOP

回复 16# terse


    百万数据这个慢

TOP

本帖最后由 tmplinshi 于 2022-12-20 07:39 编辑

试试 PowerShell
  1. function ParseFile {
  2.     param (
  3.         [Parameter(Mandatory = $true)][Alias("in")] $inputFile,
  4.         [Parameter(Mandatory = $true)][Alias("out")] $outputFile
  5.     )
  6.     if (-not (Test-Path $inputFile)) {
  7.         Write-Error "文件不存在: $inputFile"
  8.         return
  9.     }
  10.    
  11.     $streamIn  = [IO.StreamReader]::new($inputFile)
  12.     $streamOut = [IO.StreamWriter]::new($outputFile, $false, [System.Text.ASCIIEncoding]::UTF8)
  13.     while (-not $streamIn.EndOfStream) {
  14.         $line = $streamIn.ReadLine()
  15.         $arr = $line -split '-+'
  16.         if ($arr[1, 2] -join '-' -like "*$($arr[0])*") {
  17.             $streamOut.WriteLine($line)
  18.         }
  19.     }
  20.    
  21.     $streamIn.close()
  22.     $streamOut.close()
  23. }
  24. ParseFile -in a.txt -out b.txt
复制代码

TOP

如果装有python的话 能稍微提升一点效率
  1. @python -x "%~f0" >b.txt& pause &exit
  2. # -*- coding: utf-8 -*-
  3. import os,re
  4. file = r'a.txt'
  5. with open(file) as f:
  6.     for line in f.readlines():
  7.          arr = re.split('\.+',line)
  8.          if arr[0].lower() in '-'.join(arr[1:3]).lower():
  9.             print( line.strip())
复制代码

TOP

回复 17# idc878787


下载WITH DEVKIT版本
即:https://github.com/oneclick/ruby ... kit-3.1.3-1-x64.exe
或:https://github.com/oneclick/ruby ... kit-3.1.3-1-x86.exe
安装后才会有gawk.exe

TOP

返回列表