Board logo

标题: [文本处理] 【已解决】批处理提取不同文本中的信息到新文件 [打印本页]

作者: wushu    时间: 2020-5-20 16:18     标题: 【已解决】批处理提取不同文本中的信息到新文件

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

[attach]12559[/attach][attach]12559[/attach][attach]12559[/attach][attach]12559[/attach][attach]12559[/attach][attach]12559[/attach]新人翻了一天的历史贴,没找到解决方案

求高手指导:
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
作者: Batcher    时间: 2020-5-20 16:25

回复 1# wushu


    请把这5个txt文件打包压缩上传,以便测试。
作者: xp3000    时间: 2020-5-20 16:56

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

回复 1# wushu


楼主是做ic的吗,问题解决了吗?
作者: wushu    时间: 2020-5-21 11:45

回复 4# netdzb


    暂时还没有,在让同事准备附件中...
作者: wushu    时间: 2020-5-21 11:48

回复 5# xczxczxcz


    高手,你的这个代码怎么执行阿?我是小菜!
作者: netdzb    时间: 2020-5-21 11:49

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

回复 7# wushu

你要实现什么功能?
你的f43为啥输出2次?
作者: xp3000    时间: 2020-5-21 13:23

  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(''))
复制代码
不用第三方工具
作者: wushu    时间: 2020-5-21 16:08

回复 9# xp3000

谢谢!
    太牛了!
作者: wushu    时间: 2020-5-21 16:18

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

回复 9# xp3000


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

回复 3# xp3000


    谢谢!
作者: wushu    时间: 2020-5-21 16:19

回复 5# xczxczxcz


    谢谢!
作者: xp3000    时间: 2020-5-21 18:46

  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(''))
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2