TXT'yi okumak ve satırları CSV'ye çözümlemek için Windows Batch


1

Bu siteyi arayarak ve Windows toplu iş komut dosyası yazma saçma dilini öğrenerek çok fazla ilerleme kaydettim, ama açıkçası şaşırıp kaldım. Aşağıdaki örnek, verilerini düzenli olarak TXT dosyaları olarak kaydeden laboratuarımızın eski radyometre modülünden alınmıştır. Onları uygun bir CSV'ye ayrıştırmaya çalışıyorum. Buradaki fikir, belli bir klasördeki tüm TXT kayıtlarını CSV formatına çevirmek için periyodik olarak çalışabilen bir .bat dosyasına sahip olmaktır.

Yapılabileceğini düşündüğüm şekilde: Boş satırdan önceki her şeyi silin (= başlık), boşlukları sekmelerle değiştirin (değerler arasındaki boşluk tutarsız olduğu için gereklidir), sekmeleri virgüllerle değiştirir, çift virgüllerden kurtulun.

*.Txt:

PRODUCES
    MFRSR Detector Temp ,  degC
    HTR V ,  V
    MFRSR Thermopile Total ,  W/m^2
    MFRSR 414.0nm Total ,  (W/m^2)/nm
    MFRSR 496.6nm Total ,  (W/m^2)/nm
    MFRSR 613.0nm Total ,  (W/m^2)/nm
    MFRSR 670.9nm Total ,  (W/m^2)/nm
    MFRSR 869.3nm Total ,  (W/m^2)/nm
    MFRSR 937.6nm Total ,  (W/m^2)/nm
    MFRSR Thermopile Diffuse ,  W/m^2
    MFRSR 414.0nm Diffuse ,  (W/m^2)/nm
    MFRSR 496.6nm Diffuse ,  (W/m^2)/nm
    MFRSR 613.0nm Diffuse ,  (W/m^2)/nm
    MFRSR 670.9nm Diffuse ,  (W/m^2)/nm
    MFRSR 869.3nm Diffuse ,  (W/m^2)/nm
    MFRSR 937.6nm Diffuse ,  (W/m^2)/nm
    MFRSR Thermopile DirNorm ,  W/m^2
    MFRSR 414.0nm DirNorm ,  (W/m^2)/nm
    MFRSR 496.6nm DirNorm ,  (W/m^2)/nm
    MFRSR 613.0nm DirNorm ,  (W/m^2)/nm
    MFRSR 670.9nm DirNorm ,  (W/m^2)/nm
    MFRSR 869.3nm DirNorm ,  (W/m^2)/nm
    MFRSR 937.6nm DirNorm ,  (W/m^2)/nm

    42099   0.29236 -0.55603     45.20     7.4819          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5          *5
    42099   0.57222 0.01180  45.20     7.8285      0.9378      0.0086      0.0086      0.0032      0.0040      0.0018      0.0005      0.9473      0.0093      0.0086      0.0032      0.0040      0.0018      0.0005     -0.8090      0.0000      0.0000      0.0000      0.0000      0.0000      0.0000
    42099   0.57291 0.01415  45.20     7.8382      1.3587      0.0093      0.0086      0.0032      0.0040      0.0018      0.0005      1.3725      0.0093      0.0086      0.0032      0.0040      0.0023      0.0005     -0.9770      0.0000      0.0000      0.0000      0.0000      0.0000      0.0000
    42099   0.57361 0.01656  45.20     7.8998      2.6372      0.0099      0.0100      0.0032      0.0040      0.0023      0.0005      2.6641      0.0099      0.0100      0.0032      0.0040      0.0023      0.0005     -1.6210      0.0000      0.0000      0.0000      0.0000      0.0000      0.0000

* .Csv:

42099,0.29236,-0.55603,45.20,7.4819,*5,*5,*5,...
42099,0.57222,0.01180,45.20,7.8285,0.9378,0.0086,... 
42099,... 
...

Toplu iş bilen ve beni başlatabilecek biri var mı?

Yanıtlar:


0

Komut satırı:

powershell $h=25;$f=gc data.txt;$f[$h..($f.count-1)]^|%{$_.Trim()-replace'\s+',','>>data.csv }

veya:

powershell $h=25;$f=gc data.txt;$f[$h..($f.count-1)]^|%{('\"'+$_.Trim()+'\"')-replace'\s+','""";"""'^|ac data.csv}

powershell betiği:

$h=25;$f=gc data.txt;$f[$h..($f.count-1)]|%{$_.Trim()-replace'\s+',','>>data.csv}

veya:

$h=25;$f=gc data.txt;$f[$h..($f.count-1)]|%{('"'+$_.Trim()+'"')-replace'\s+','";"'>>data.csv }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.