jocheng
Goto Top

CSV nach CSV durchsuchen und speichern

Hallo Leute ich fuchtel wieder an einem CSV Problem.

Ich habe eine CSV mit Werten die ich nach einer anderen CSV durchsuchen will und immer wenn der Wert aus der search.csv vorkommt in einer neuen Datei gespeichert haben will.

Alles was ich hinbekommen ist aber die CSV (anfang.csv) zu durchsuchen und wennn der Wert vorkommt diesen auszulassen.

set "quellordner=K:\CSV"  
set "zielordner=K:\CSV\ende"  
pushd "%quellordner%"  
for /f "delims=" %%i in ('dir /b /a-d anfang.csv') do findstr /v "4056204302446" "%%i">"%zielordner%\%%i"  
popd

4056204302446 steht testweise für die Werte nach denen gesucht werden soll (search.csv)

Aufbau der Anfang.csv
1;201620;21002;0001;OSFA;4056204301432;in_stock;;2029;1;0;Y;N
1;201620;21002;0002;OSFA;4056204301418;in_stock;;1513;1;0;Y;N
1;201620;21002;0003;OSFA;4056204301425;in_stock;;2489;1;0;Y;N
1;201620;21002;0006;OSFA;4056204301388;in_stock;;1543;1;0;Y;N
1;201620;21003;0002;OSFA;4056204301265;in_stock;;0;1;0;Y;N
1;201620;21003;0003;OSFA;4056204301289;in_stock;;0;1;0;Y;N
1;201620;21006;0001;OSFA;4056204302446;in_stock;;129;1;0;Y;N
1;201620;21007;0001;OSFA;4056204302255;in_stock;;8;1;0;Y;N
1;201620;21007;0002;OSFA;4056204302248;in_stock;;492;1;0;Y;N
1;201620;21017;0003;OSFA;4056204300695;in_stock;;0;1;0;Y;N
1;201620;21018;0001;OSFA;4056204301319;in_stock;;1073;1;0;Y;N
1;201620;21018;0003;OSFA;4056204301302;in_stock;;426;1;0;Y;N
1;201620;21019;0001;ADULT;4056204301593;in_stock;;0;1;0;Y;N
1;201620;21019;0002;ADULT;4056204301579;in_stock;;0;1;0;Y;N
1;201620;21019;0003;ADULT;4056205785217;in_stock;;25;1;0;Y;N
1;201620;21020;0001;ADULT;4056204301869;in_stock;;0;1;0;Y;N

Aufbau der search.csv
4056204302446

Content-Key: 318062

Url: https://administrator.de/contentid/318062

Printed on: April 26, 2024 at 04:04 o'clock

Mitglied: 131026
131026 Oct 17, 2016 updated at 07:15:23 (UTC)
Goto Top
Gibt's hier schon Unmengen an Beiträgen die selbst ich als Neuling in diesem Forum finde ...
Hier scheint echt niemand die Suche zu benutzen.
set "quellordner=K:\CSV"  
set "zielordner=K:\CSV\ende"  
pushd "%quellordner%"  
findstr /ig:"search.txt" "anfang.csv" >"%Zielordner%\ergebnis.txt"  
2 CSV Dateien per Powershell vergleichen

R.
Member: jocheng
jocheng Oct 17, 2016 at 16:15:01 (UTC)
Goto Top
Das klappt super wenn in der search.csv nur ein nur ein paar nummern stehen. Wenn ich da aber ein paar 10.000 reinpacke bekomme ich die gleiche Liste einfach nochmal.

Die anfang.csv ist 44000 Zeilen groß und die search.csv gut 30.000. Gibt es da irgendwelche maximalwerte???
Mitglied: 131026
131026 Oct 17, 2016, updated at Oct 18, 2016 at 06:20:58 (UTC)
Goto Top
Zitat von @jocheng:
Die anfang.csv ist 44000 Zeilen groß und die search.csv gut 30.000. Gibt es da irgendwelche maximalwerte???
Da wird die max Batch Zeilenlänge eine Rolle spielen.

Nimm Powershell, das hat damit kein Problem. Batch ist sowieso langsam aber sicher etwas für den Dachboden.

$search = gc "K:\CSV\search.csv" -join '|'  
$csv = gc "K:\CSV\Anfang.csv"  
$csv | ?{$_ -match $search} | set-content "K:\CSV\Ende\ergebnis.csv"  
Member: jocheng
jocheng Oct 17, 2016 at 16:52:02 (UTC)
Goto Top
es ging auch mit dem Batch. Das Problem war ein anderes :/ in der search.csv hatten die EAN Nummern zum Teil eine Leerzeichen am Ende und eine Zeile war eine 0 :D dann ist klar das alles gefunden wird.
Member: jocheng
jocheng Oct 18, 2016 at 03:18:51 (UTC)
Goto Top
Ich habe jetzt mal das Powershell script ausprobiert das macht einfach garnichts face-sad woran kann das liegen? Kein Fehler nichts
Mitglied: 131026
131026 Oct 18, 2016 at 06:21:49 (UTC)
Goto Top
Kleine Korrektur.