Hi, On Mo, Mär 01, 2004 at 09:58:38 +0100, Sebastian Andres wrote:
wenn ich ein skript habe (aus dem Internet), welches unter Windows entwickelt wurde und ich es über Samba auf meinen server kopiere, hat das Skript an jedem Zeilenende ein m und funktioniert dadurch nicht.
Das ist kein M, sondern ein sog. "carriage return" (Wagenrücklauf). Unter Windows wird ein Zeilenumbruch in einer Textdatei durch die beiden Zeichen "carriage return" (cr) und "line feed" (lf) dargestellt. Andere Betriebssysteme begnügen sich mit einem Zeichen um einen Zeilenumbruch darzustellen. Unter linux ist das der "line feed". Wenn du jetzt eine unter Windows erstellte Textdatei unter Linux öffnest, ist das CR überflüssig bzw. es besitzt keine Funktion und wird desshalb wie alle anderen nicht-Steuerzeichen ausgegeben, was dann auf der Zeile wie das M aussieht. Viele Editoren wie z. B. Vim oder Emacs erkennen dieses Problem und zeigen dieses "M" nicht an. Zur Zeichensatzkonvertierung in Textdateien gibt es das Programm recode. Auf vielen Linux-Systemen (auch SuSE :-) ) existieren die Aliase dos2unix bzw. unix2dos, mit denen Textdateien leicht konvertiert werden können. Diese benutzen jedoch auch das Programm Recode. So, und hier noch der Aufruf von Recode zum konvertieren einer oder mehrerer Textdateien mit carriage returns nach Linux/Unix, falls dos2unix nicht existiert: recode lat1/cr-lf..iso-8859-1 <dateiname> Eine andere Möglichkeit ist das Suchen-und-Ersetzen im Editor: Suche nach: \r ersetzen durch: hth Henning -- Henning Oschwald SuSE AG SuSE-Blinux Support mailto: hoschwa@suse.de blinux-support: Di. und Do. 15:00 - 20:00 Uhr unter 0421/526-2480 SuSE-Blinux Homepage: www.blinux.suse.de