grep in DOS-File / Zeilenumbruch
Hallo Liste, suche eine Lösung, wie ich bei "grep" den DOS-Zeilenumbruch finden lasse: Möchte den Dateinamen von Dateien haben, in denen es eine Zeile gibt, in der NUR "bezahlt" steht. Also z.B. könnte eine Datei so aussehen: ++++++++++ testfile.txt ++++++++++++++ bezahlt Nr. 4414 - Preis= 2.4 Euro -12523- [15/Apr/2004:17:05:50] - 0.480068 qm (0.500027 x 0.960085) -- bezahlt in Zeile 1 eingeben Nr. 4416 - Preis= 2.4 Euro -12523- [15/Apr/2004:17:13:36] - 0.480068 qm (0.500027 x 0.960085) -- bezahlt in Zeile 1 eingeben ++++++++++++++++++++++++++++ Das "bezahlt" wird von Leuten eingefügt, die Geld einkassiert haben und deshalb unter Windows in der 1. Zeile ein "bezahlt" einfügen. Wenn ich das "bezahlt" mit vi unter Linux eintrage, findet ein grep -l -x bezahlt *txt die Dateien. Wenn ich das gleiche mit einer Datei mache, die mit z.B. dem Wordpad bearbeitet wurde, gibt es den Dateinamen nicht mehr. D.h. hinten scheint noch ein Steuerzeichen bzw. anderer Zeilenumbruch zu sein. Ein grep -l -x bezahlt'$' *txt hat leider auch nichts bewirkt. Hat jemand eine Idee, wie ich das "DOS-Sonderzeichen" eintrage? Viele Grüsse Joachim
Joachim Kieferle wrote:
Hallo Liste,
suche eine Lösung, wie ich bei "grep" den DOS-Zeilenumbruch finden lasse:
Möchte den Dateinamen von Dateien haben, in denen es eine Zeile gibt, in der NUR "bezahlt" steht. Also z.B. könnte eine Datei so aussehen:
++++++++++ testfile.txt ++++++++++++++ bezahlt Nr. 4414 - Preis= 2.4 Euro -12523- [15/Apr/2004:17:05:50] - 0.480068 qm (0.500027 x 0.960085) -- bezahlt in Zeile 1 eingeben Nr. 4416 - Preis= 2.4 Euro -12523- [15/Apr/2004:17:13:36] - 0.480068 qm (0.500027 x 0.960085) -- bezahlt in Zeile 1 eingeben ++++++++++++++++++++++++++++
Das "bezahlt" wird von Leuten eingefügt, die Geld einkassiert haben und deshalb unter Windows in der 1. Zeile ein "bezahlt" einfügen.
Wenn ich das "bezahlt" mit vi unter Linux eintrage, findet ein
grep -l -x bezahlt *txt
die Dateien. Wenn ich das gleiche mit einer Datei mache, die mit z.B. dem Wordpad bearbeitet wurde, gibt es den Dateinamen nicht mehr. D.h. hinten scheint noch ein Steuerzeichen bzw. anderer Zeilenumbruch zu sein. Ein
grep -l -x bezahlt'$' *txt
hat leider auch nichts bewirkt. Hat jemand eine Idee, wie ich das "DOS-Sonderzeichen" eintrage?
Viele Grüsse
Joachim
Hallo Joachim, mit grep -l '^bezahlt[[:space:]]*' müsste es gehen Gruß Dieter
Dieter Leveringhaus wrote:
Joachim Kieferle wrote:
Hallo Liste,
suche eine Lösung, wie ich bei "grep" den DOS-Zeilenumbruch finden lasse:
Möchte den Dateinamen von Dateien haben, in denen es eine Zeile gibt, in der NUR "bezahlt" steht. Also z.B. könnte eine Datei so aussehen:
++++++++++ testfile.txt ++++++++++++++ bezahlt Nr. 4414 - Preis= 2.4 Euro -12523- [15/Apr/2004:17:05:50] - 0.480068 qm (0.500027 x 0.960085) -- bezahlt in Zeile 1 eingeben Nr. 4416 - Preis= 2.4 Euro -12523- [15/Apr/2004:17:13:36] - 0.480068 qm (0.500027 x 0.960085) -- bezahlt in Zeile 1 eingeben ++++++++++++++++++++++++++++
[ ... ]
Hallo Joachim,
mit grep -l '^bezahlt[[:space:]]*' müsste es gehen
Hallo Dieter, vielen Dank - so funktioniert's. Hätte ich auch selber draufkommen können, das Ganze als Pattern zu verwenden ;-)). Viele Grüsse Joachim
participants (2)
-
Dieter Leveringhaus
-
Joachim Kieferle