批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文本处理] 【已解决】批处理提取不同文本中的信息到新文件

本帖最后由 wushu 于 2020-5-25 16:23 编辑

新人翻了一天的历史贴,没找到解决方案:L

求高手指导:
PL3392-1: (38-51)
                  
        供应   L 元件名称      总数   吸取数 贴片数 丢失 错误  无  重试 识别 识别 弯曲 元件 /Sot 站立 检测 其它
        F-34   * QCA0696         6389   6384   6384    1    5    2    2    0    0    0    0    0    0    0    0
        F-36   * QCA0691        13727  13692  13680   35   35    6    6    0    0    0   12    0    0    0    0
        F-38   * QZE0036         1374   1368   1368    0    6    2    2    0    0    0    0    0    0    0    0
        F-40   * QCA0690         2736   2736   2736    0    0    0    0    0    0    0    0    0    0    0    0
        F-44   * QCA0022          466    457    456    6    9    1    1    1    0    0    0    0    0    0    0
        F-49   * QCA0688         7300   7296   7296    0    4    2    2    0    0    0    0    0    0    0    0
        F-51   * QCA0695         7769   7762   7752   11    7    2    2    0    0    0   10    0    0    0    0
        F-57   * QCA0047         1824   1824   1824    0    0    0    0    0    0    0    0    0    0    0    0
        F-61   * QRS0028         1825   1825   1824    1    0    0    0    0    0    0    1    0    0    0    0
        F-65   * QCA0049         1824   1824   1824    0    0    0    0    0    0    0    0    0    0    0    0
        F-67   * QRS0139         3196   3192   3192    1    4    1    1    0    0    0    0    0    0    0    0
        F-71   * QRS3127         3650   3648   3648    0    2    1    1    0    0    0    0    0    0    0    0
        F-73   * QRS8444          927    915    912    3   12    3    3    0    0    0    3    0    0    0    0

PL3392-2: (38-53)
        供应   L 元件名称      总数   吸取数 贴片数 丢失 错误  无  重试 识别 识别 弯曲 元件 /Sot 站立 检测 其它
        F-10   * QIC1326          450    450    450    0    0    0    0    0    0    0    0    0    0    0    0
        F-14   * QIC1329         1800   1800   1800    0    0    0    0    0    0    0    0    0    0    0    0
        F-21   * QIC1226          451    450    450    0    1    1    1    0    0    0    0    0    0    0    0
        F-24   * QIC1325          450    450    450    0    0    0    0    0    0    0    0    0    0    0    0
        F-27   * QIC1327          450    450    450    0    0    0    0    0    0    0    0    0    0    0    0
        F-44   * QIC1324          450    450    450    0    0    0    0    0    0    0    0    0    0    0    0
        F-47   * QDI1030          450    450    450    0    0    0    0    0    0    0    0    0    0    0    0
        F-53   * QRS0071         5402   5400   5400    0    2    1    1    0    0    0    0    0    0    0    0
        F-57   * QCA0016        13056  13050  13050    0    6    3    3    0    0    0    0    0    0    0    0
        F-59   * QRS0027        15761  15751  15750    1   10    5    5    0    0    0    1    0    0    0    0
        F-69   * QRS0037         1800   1800   1800    0    0    0    0    0    0    0    0    0    0    0    0
        F-71   * QRS0029         6752   6750   6750    0    2    1    1    0    0    0    0    0    0    0    0
        F-73   * QRS1058          904    900    900    0    4    2    2    0    0    0    0    0    0    0    0
        F-75   * QZE0041          460    455    450    7    5    1    1    0    0    0    5    0    0    0    0
        F-77   * QTR3010          452    450    450    0    2    2    2    0    0    0    0    0    0    0    0
PL3392-3: (38-合计的前一行)
PL3392-4: (38-合计的前一行)
还有很多。。。

需求: 把所有的TXT里的提取信息合并到新的文件test.txt
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

回复 1# wushu


    请把这5个txt文件打包压缩上传,以便测试。
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

  1. @grep -oP "^\s*F-\d+\s+\*\s[A-Z0-9]+(\s+\d+){15}$" *.txt >>输出.log
复制代码
先看看这个能不能提取正确部分,能的话加for就搞定了

TOP

回复 1# wushu


楼主是做ic的吗,问题解决了吗?

TOP

回复 4# netdzb


    暂时还没有,在让同事准备附件中...:)

TOP

回复 5# xczxczxcz


    高手,你的这个代码怎么执行阿?我是小菜!

TOP

本帖最后由 netdzb 于 2020-5-21 11:52 编辑

回复 7# wushu

你要实现什么功能?
你的f43为啥输出2次?

TOP

  1. 1>1/* :
  2. @echo off
  3. echo                        吸取                 元件 吸取 元件      激光 图象 引脚  异  验证 芯片 共面     >输出.LOG
  4. echo         供应   L 元件名称      总数   吸取数 贴片数 丢失 错误  无  重试 识别 识别 弯曲 元件 /Sot 站立 检测 其它>>输出.LOG
  5. (type *.txt 2>nul|cscript -nologo -e:jscript "%~f0")>>"输出.LOG"
  6. pause & exit/b
  7. */
  8. WSH.echo(WScript.StdIn.ReadAll().match(/^\s*F-\d+\s+\*\s[A-Z0-9]+(\s+\d+){15}$/mg).join(''))
复制代码
不用第三方工具
1

评分人数

    • smss: 吸收功力技术 + 1

TOP

回复 9# xp3000

谢谢!
    太牛了!:D

TOP

本帖最后由 wushu 于 2020-5-21 16:53 编辑

回复 9# xp3000


    大师,如果想加入每个TXT文件中的“程序名       = PL3392.E47” 和 “ 开始生产时刻 = 2020/05/20 12:23:58”到导出的文件里(2列),该怎么弄呢?

TOP

回复 3# xp3000


    谢谢!

TOP

回复 5# xczxczxcz


    谢谢!

TOP

  1. 1>1/* :
  2. @echo off
  3. echo                        吸取                 元件 吸取 元件      激光 图象 引脚  异  验证 芯片 共面     >输出.LOG
  4. echo         供应   L 元件名称      总数   吸取数 贴片数 丢失 错误  无  重试 识别 识别 弯曲 元件 /Sot 站立 检测 其它>>输出.LOG
  5. (type *.txt 2>nul|cscript -nologo -e:jscript "%~f0")>>"输出.LOG"
  6. pause & exit/b
  7. */
  8. WSH.echo(WScript.StdIn.ReadAll().replace(/程序名([\s\S](?!-))*(重新开始位置|警告|吸取出错)/g, '').match(/\s*F-\d+\s+\*\s[A-Z0-9]+(\s+\d+){15}|\r\n.*程序名.*|\r\n.*开始生产时刻.*/g).join(''))
复制代码

TOP

返回列表