Dateien mit Windows-Zeilenenden finden

testit

Well-Known Member
Hallo,

ich hatte schon einmal einen Beitrag geposter unter
http://www.bsdforen.de/showthread.php?t=13647
der sich damit beschäftigt, wie man Dateien findet, in die versehentlich Windows-Zeilenende-Markierungen hineingekommen sind.

Die unter o.a. Beitrag geposteten Antworten führten bei mir nicht zum Erfolg.

Dateien mit ^M sollen ermittelt werden, aber leider erkennt bspw.
find . -type f -name "*.php" | xargs grep -l \\r\\n
das Vorkommen von ^M in Dateien nicht!

Kennt jemand einen entsprechenden Ausdruck?

Danke und Gruss
testit
 
Hi,

danke fuer Deinen Tip, aber der kam auch schon in dem anderen Thread vor und zeit nur die Dateien an, in denen tatsächlich \r auftaucht und nicht die, in denen "unsichtbare" DOS-Zeilenende-Zeichen stehen.

Danke und Gruss
testit
 
[LoN]Kamikaze said:
wie wär's denn mit

# grep -E "[[:cntrl:]]$"


Hallo!

Dein Vorschlag ergibt bei mir leider folgende Fehlermeldung:
"Illegal variable name."

Gruss
testit
 
testit said:
Aber leider versagt der Ausdruck bei einem testfile.

Nein, tut er nicht.

Hast Du das etwa literal abgetippt ?

Bitte genauestens beschreiben, was Du gemacht hast.
 
testit said:
Hallo!

Dein Vorschlag ergibt bei mir leider folgende Fehlermeldung:
"Illegal variable name."

Gruss
testit
Tschuldigung, ersetze " mit ', dann geht's.
 
walt said:
Nein, tut er nicht.

Hast Du das etwa literal abgetippt ?

Bitte genauestens beschreiben, was Du gemacht hast.

Hallo Walt,

vielleicht könntest Du mir netterweise kurz erläutern, was Du mit
VCTRL-M
meinst?

Danke
testit
 
[LoN]Kamikaze said:
Tschuldigung, ersetze " mit ', dann geht's.

Hi,

vielen Dank, es klappt.

Allerdings gibt der Ausdruck jede Zeile aus, in der DOS-Zeilenendezeichen stehen.
Sind in einer Datei 100 Zeilen mit diesem Endezeichen, dann wird 100 mal der Dateiname ausgegeben inkl. Inhalt der Zeile.

Gibt es eine Möglichkeit, dass jeweils nur der Dateiname ausgegeben wird (egal wieviel DOS-Endezeichen drin enthalten sind)?

Herzlichen Dank
testit
 
testit said:
vielleicht könntest Du mir netterweise kurz erläutern, was Du mit
VCTRL-M
meinst?

Ja.
Du tippst: egrep "
dann die Control-Taste druecken und gedrueckt halten, jetzt zusaetzlich die v-Taste druecken, jetzt beide Tasten loslassen.
Unmittelbar darauf wieder die Control-Taste druecken und gedrueckt halten, jetzt zusaetzlich die m-Taste druecken, jetzt beide Tasten loslassen.
Jetzt noch das abschliessende " und dahinter die oder den zu untersuchenden
Dateinamen, evtl auch mit Wildcards (* oder ?)
Die Control-Taste ist die am weitesten unten links befindliche Taste auf Deiner
Tastatur. Neuerdings ist diese Taste beschriftet mit "Strg"
 
walt said:
Ja.
Du tippst: egrep "
dann die Control-Taste druecken und gedrueckt halten, jetzt zusaetzlich die v-Taste druecken, jetzt beide Tasten loslassen.
Unmittelbar darauf wieder die Control-Taste druecken und gedrueckt halten, jetzt zusaetzlich die m-Taste druecken, jetzt beide Tasten loslassen.
Jetzt noch das abschliessende " und dahinter die oder den zu untersuchenden
Dateinamen, evtl auch mit Wildcards (* oder ?)
Die Control-Taste ist die am weitesten unten links befindliche Taste auf Deiner
Tastatur. Neuerdings ist diese Taste beschriftet mit "Strg"

Danke fuer den Hinweis, wo sich die CTRL-Taste befindet ;-)

Mal im Ernst: Mein Verständnis-Problem war ausschliesslich darauf zurückzuführen, dass ich "CTRL-VCTRL-M" als Folge CTRL VCTRL M gelesen hatte und nicht - wie Du es wolltest - als CTRL-V CTRL-M.

Ich hatte nämlich noch nie etwas von der Taste VCTRL gehört :-)

Danke Dir fuer die Aufklärung!

Nette Grüsse
testit
 
testit said:
Danke fuer den Hinweis, wo sich die CTRL-Taste befindet ;-)

Mal im Ernst: Mein Verständnis-Problem war ausschliesslich darauf zurückzuführen, dass ich "CTRL-VCTRL-M" als Folge CTRL VCTRL M gelesen hatte und nicht - wie Du es wolltest - als CTRL-V CTRL-M.

Ich hatte nämlich noch nie etwas von der Taste VCTRL gehört :-)

Danke Dir fuer die Aufklärung!

Nette Grüsse
testit

So,

CTRL-V klappt einwandfrei und erzeugt das entsprechende Steuerzeichen, aber ein CTRL-M steigt bei mir stets sofort aus, so dass der Ausdruck erst gar nicht fertig eingegeben werden kann.

Nette Gruesse
tesit
 
Anscheinend will walt auf die Zeichenkombination ^M raus.
Nach meinen bescheidenen Erfahrung handelt es sich hierbei aber nicht (nur) um das Zeilenende sondern (auch) um den Zeilenumbruch.
Mal ne bescheidene Frage, kann man da nicht ebensogut die Tastatur-Zeichen ^ und M eintippen?
Wozu dir CTRL bzw. STRG-Tasten verwenden?
 
Hi,

weil sonst die sichtbare Zeichenfolge ^M in der Datei gesucht wird, also bspw, so, wie sie gerade in diesem Satz vorkommt!

Gruss
testit
 
[LoN]Kamikaze said:
wie wär's denn mit

# grep -E "[[:cntrl:]]$"


Hallo,

nachdem ich zuerst dachte, dass der Ausdruck
grep -E '[[:cntrl:]]$' *.php
alle Dateien mit DOS-Zeilenende (^M) findet, muss ich mich leider korrigieren, denn die ^M sieht man mit vi ja sehr gut und ich hatte eben Treffer, bei denen die benannten Dateien zuvor mit UltraEdit um UNIX-Mode gespeichert worden waren und folglich auch mit vi kein ^M sichtbar war.

Gruss
testit
 
testit said:
[...]aber ein CTRL-M steigt bei mir stets sofort aus, so dass der Ausdruck erst gar nicht fertig eingegeben werden kann.

Bitte mal die Shell wechseln. Vermutlich benutzt Du gerade die csh :-(
CTRL-V sollte kein sichtbares Steuerzeichen erzeugen, es dient ausschliesslich dazu das
nachfolgende Steuerzeichen seiner Sonderbedeutung zu berauben und vor der Auswertung
durch die Shell zu schuetzen.
Bei der sh, bash und zsh funktioniert das sogar.
 
Back
Top