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

[文本处理] [已解决]批处理怎么提取csv文件中的单元格汇总到一个新的表格里啊?

一个文件夹下有一堆CSV文件,怎么才能提取每个csv文件中的一个单元格,合并汇总到一个新的表格里啊;
比如附件1.csv 里 我想提取当前文件夹下所有csv文件 D37 的内容 到新表里,怎么实现啊,求大神指教
        Lot Start Time        2011-5-4        4:48:22                               
Lot End Time                2011-5-4        5:12:12                               
Cassette ID                1AC-0999                                       
Lot ID                1AGX140551                                       
Port No.                3                                       
                                                       
Processed Substrate                20                                       
Total Processed Substrate                349000                                       
                                                       
Sub. No.                3001                                       
Cassette Slot No.                1                                       
Process Recipe                A-ITO400A                                       
Platen Used                Platen1                                       
Recipe Type                SMD-Product                                       
SetUp Recipe                A-ITO SETUP                                       
                                                       
                Step1                Step2                Step3       
Recipe1                A-ITO 400A        ( S3 )                               
                                                       
L1 Chamber In                                                       
L1 Waiting Time of Loading        [sec]        0                                77       
L1 Heat temp        [C]                24        23        26        24       
L1 Heating Program No..        [no.]                                        1       
L1 Keeping Program No..        [no.]                                        1       
                                                       
Chamber                S3(CA32)                                       
        Units        Set        Ave        Min        Max        Act       
Process Start                2011-5-4        4:50:57                               
Process End                2011-5-4        4:51:07                               
S3 CA32 Platen Pos.        [Pos.]                                        0       
S3 CA32 Process Time        [sec]        999                        12               
S3 CA32 Sputter Time        [sec]        11                        10               
S3 MFC1 Ar        [sccm]        280        281        281        281               
S3 MFC2 O2        [sccm]        0        0        0        0               
S3 MFC3 H2O        [sccm]        3        3        3        3               
S3 DG Pressure        [Pa]                0.65        0.63        0.66               
S3 CA32 DC Power1        [kW]        60        60        59.9        60               
S3 CA32 DC Current1        [A]                145        143        146               
S3 CA32 DC Voltage1        [V]                413        409        420               
S3 CA32 Arc count1        [Times]                                        6       
S3 CA32 Target Life(1)        [kWh]                                        8975
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

把你的csv压缩一下传上来
直接帖文本的话,格式就变了。

TOP

回复 2# DAIC

附件如下 谢大神指导

TOP

  1. gawk -F, "FNR==37{print $4}" *.csv > new.csv
复制代码

TOP

DAIC 发表于 2014-12-15 23:49



    这段代码怎么用??

TOP

回复 4# DAIC


    这段代码怎么用?
能详细点说嘛?我小白

TOP

回复 6# haichuan5121


下载gawk.exe放到C:\Windows\System32文件夹下面
4楼的代码保存为test.bat
执行test.bat

TOP

回复 7# DAIC


    ????,没反应啊,这个BAT放到哪执行啊 内容只需要这一行代码吗?

TOP

回复 8# haichuan5121


    test.bat和csv放到同一个目录下面

TOP

回复 9# DAIC


    生成的新csv文件 里面是空的啊???

TOP

回复 10# haichuan5121


我用3楼的csv测试的时候可以得到结果。
你打开一个CMD窗口,cd到csv文件所在的目录,执行命令:
gawk -F, "FNR==37{print $4}" *.csv
有什么结果没?

你下载的哪个版本的gawk.exe呢?这是我的:
C:\Test>gawk --version
GNU Awk 4.1.0, API: 1.0

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b *.csv') do (
  3. for /f "skip=36 delims=, tokens=4" %%b in ('type "%%a"') do (
  4. if "!a!"=="" >>new.csv echo %%b
  5. set a=1
  6. )
  7. set a=
  8. )
  9. pause
复制代码

TOP

回复 12# 522235677


    大神神武;能达到效果,大神能给解释下代码的作用吗》?还有就是能不能让你这个代码执行一遍后,第二遍再执行的时候数据不会重复提取啊!

TOP

回复 12# 522235677


    如果要取多个数据怎么写?现在D37能取了,放在了A列  如果D38放B列呢怎么修改啊!

TOP

skip=36 delims=, tokens=4

如果是B38 ,就把skip参数改为37,tokens改为2

你上面说的不重复数据指的是比如第一个表格里提取了60,第二个表格也提取到60就算重复了?

TOP

返回列表