grep oder fgrep unter Windows - csv Zeilenumbruch fehlt

OP #5005471
Lesenswert?

Guten Tag liebes Forum, Ihr wart mir immer eine Hilfe!

Doch nun zu meinem Problem.
grep -Zeilenumbrüche fehlen-


Die Lösung muß in einer Batch erfolgen, die zwischen Programm "A" und 
"B" eine Datei übergibt.

Programm "A" gibt eine CSV mit 24 Spalten und ";" als Delimiter aus. 
Jede Zeile (von etwa 15.000) ist mit Zeilenumbruch abgeschlossen.

In der ersten Spalte steht true oder false. Die Datensätze mit true 
sollen
entfernt werden.
Programm "B" übernimmt die verbleibenden false Zeilen (etwa 4000) zur 
Weiterverarbeitung.

Bisher habe ich das in einer Batch gelöst, allerdings mit herben 
Laufzeitproblemen.
Ich lud von unxutils.sourceforge.net die GNU utilities for Win32 
herunter und den Einzeiler
1
grep -w "false" \\SERVERIP\Daten\0-PROJ-0\trim\Verkäufe.txt >\\SERVERIP\Daten\0-PROJ-0\trim\Verkäufe.csv

in die Batch eingebaut.
Läuft auch prima, nur fehlen in der von grep erstellten Datei die 
Zeilenumbrüche in der CSV (Zeile mit hex 0A abgeschlossen, statt HEX 0D 
0A.

Wie kann die Zeilenumbrüche mit übergeben? Eventuell bin ich blind.
In der unter WIN laufenden Batch hatte ich zunächst die Codepages in 
Verdacht und unter CHCP 850 und CHCP1252 getestet. Erfolglos.
Mit fgrep das Gleiche.
Vielleicht hat jemand eine Idee.

Gruß rubcom und danke im Vorraus.
Gast #5005818
Lesenswert?

> In der ersten Spalte steht true oder false.

> grep -w "false" bla.csv



Ich hoffe "false" steht in keiner anderen Datenspalte: diese Zeilen 
werden ebenso selektiert.

Mit "^" wird explizit der Zeilenanfang spezifiziert (und somit eine RE 
gegeben, sonst würde ja das primitive 'find' von DOS genügen...) und mit 
";" der Spaltentrenner.

Option -U weist grep an, die Datei als binary zu behandeln, lässt also 
die Zeilenende ohne Konversion stehen.
1
grep -wU "^false;" bla.csv

Option -i macht die Sache unabhängig von Gross-/Kleinschreibung.
OP #5008265
Lesenswert?

guest schrieb:
> Kommandozeile vor dem Frühstück für Alle! schrieb:
>> sonst würde ja das primitive 'find' von DOS genügen
>
> Und falls man mehr braucht gibt es auch noch 'findstr', dann klappt es
> auch mit RE und man kann auf den Umweg über Unix-Tool komplett
> verzichten
Hallo

Bisher wurde es mit find gelöst. Danke auch für die ausführliche 
Erläuterung zum grep.
-U binary war die Lösung.

Gruß Ingo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren