Ehrlich, man kann sich auch an Kleinigkeiten und Geschmäckern aufhängen. Ich sehe nicht, warum die Verwendung als CR/LF anstatt nur LF Arbeitszeit beim Programmieren verursachen sollte. Und zur Platzverschwendung: Bei Quellcode mit einer durchschnittlichen Zeilenlänge von 30 Zeilen ist gerade einmal 3,2% Platz "verschwendet" worden - bei Textdateien ist das normalerweise so wenig, daß im Worst Case ein oder zwei zusätzliche Blöcke auf dem Datenträger verwendet werden (normalerweise is ja BS=4096, sprich die Datei muß 4096 Zeilen lang sein um einen vollständigen Block dafür zu nutzen...).
Ach ja, statt vim dateiname + Befehlswust geht auch ein recode ibmpc..latin1 dateiname direkt auf der Kommandozeile. Sinnvoll immer dann, wenn man den vi nicht nutzen will/was anderes mit der Datei vorhat.
keine schlechte idee mit dem "recode" allerdings scheint das nicht zu einem linux-basissystem zu gehören? zu welchen tools gehört es, bzw. wo kann man es finden?
@Anonymous: Was zaehlt denn zu einem "Basissystem"? Fuer mich ist recode das Tool zum Konvertieren von Textdateien zwischen verschiedenen Encodings. Es ist ein GNU Tool, dementsprechend auf jedem GNU-Mirror erhaeltlich, oder direkt beim Autor.
Was den Trick mit vim angeht: Mit "set fileformat" wird wirklich nur das Zeilenendeformat konvertiert, evtl. Umlaute etc. bleiben davon unberuehrt, was ein weiterer Grund fuer recode ist .
@Nörgler Wenn Du kompilierst hast Du schon recht. Anders sieht es bei Skriptsprachen wie PHP bzw. auch bei HTML aus. Wenn Du den Code auf Performance optimieren willst, zählt jedes Byte. Schau Dir mal den Quelltext von div. WYSIWIG-Grütze-Editoren an. Dort hast Du massenhaft Zeilen in denen nur & co steht (+cr/lf) dann kommst Du auf mehr als 10% Einsparung.
Es geht ja nicht nur um Platzverschwendung: wer plattformuebergreifend mit ClearCase (z.B.) entwickelt, wird schnell merken, wie schoen es ist, _nur_ mit dem einen oder _nur_ mit dem anderen Verfahren zu arbeiten.
Danke fuer den super Tip. Haette ich schon ein paar mal brauchen koennen. Hab dann halt unix2dos/dos2unix (oder so aehnlich) installiert und damit ging's dann auch. Aber auf Systemen auf denen man nicht selber Admin ist, ist die vi-Variante die bessere.
... wenn es sowieso geht? Der ganz gewöhnliche erweiterte KDE-Editor kann das schon nimmer. Einfach laden, auf die andere Dateiart umstellen, speichern, fertig. Aber ein Schnörkeltrick ist natürlich besser, weil das nur Insider verstehen. Wozu soll ich mir extra einen Editor installieren, den ich sonst nie benutze? Ist doch auch Platzverschwendung oder?
Nun verfuegen aber wahrscheinlich 90% aller Unixe und Derivate nicht ueber den ganz gewoehlichen KDE Editor.
Ein anstaendiger Server hat noch nicht einmal X. Der VI ist aber definitiv auf jedem UNIX zu finden. Obwohl ein bisschen OT, denn genau der hier beschriebene Trick funktioniert nur im VIM.
oder anderster, warum bilden sich *mansche* KDE User immer ein jeder hätte KDE? Weil irgendjemand behauptet hat es wäre der Standard Linux Desktop? Oder weils SuSE standard mässig instaliert?
also ehrlich win-telnet? das is doch die letzte Grütze. Die Darstellung und das Keymaping sind absolut schlecht. Verwende doch lieber PUTTY, ist kostenlos klein und einfach genial. Ich hab gleich die orginal telnet.exe durch putty erstezt. zum Thema CR/LF: unter unix hab ich 1000 möglichkeiten dafür, aber unter win? ich hab notepad durch editpad.exe erstezt. die classic Version ist ebenfals frei. der kann die MACDOSUNIX Konvertierung.
...und wenn es nur um das Zeilenende geht, hilft tr dank -d Option...
recode ist die Wahl, wenn's um mehr als nur CR geht (schaut Euch mal an, wie Recode zB sogar PC-Grafikchars in reine ASCII-Zeichen übersetzen kann...), ansonsten ist's Overkill...
Ich gebe aber zu: Ich klopp die CRs zumeist auch nur mit 'nem Editor ins Digiwana(TM) und die anderen Dinke sind halt für Skripte..
Wobei ich "tr -d" für eine suboptimale Lösung halte, da in manchen Dateien schon mal ein berechtigtes CR mitten in einer Zeile auftauschen kann. "tr -d" killt auch diese.
Meine Lieblingslösung zu dem Problem ist perl -p -i.bak -e 's/^M$//' dateiname Das schmeisst die CRs inline aus der Datei, legt aber vorsichtshalber eine Sicherungskopie mit Endung .bak an.
Warum sollte man die Newlines korrigieren? Benutzt einfach den Emacs und es gibt keine Sorgen ;-) Dieses gehampel mit recode etc. bleibt mir dadurch weitesgehend erspart.
Muuahaha. Wozu meinst du steht hier ein Tip fuer vim? Der Tip is fuer Leute, die einen richtigen Texteditor benutzen ;) Ein Glueck hab ich einen Kumpel von mir von emacs zu vi konvertieren koennen. Letzteren findet man wenigstens auf jedem Standard-Unix-Server, waehrend man fuer ersteren gleich einen extra Eintrag im Boot-Menue machen muss ;)
emacs-bashing am Morgen is schon was feines. Gruesse
@Lars: OK, aber genauso mit vim. Der bemerkt den Filetyp und kann cr/lf genauso verarbeiten wie lf. Allerdings wollte der Autor nicht Files mit cr/lf verarbeiten, sondern auf nur-lf umstellen.
@Lars Keine Sorgen mit EMacs bei CRLF am Zeilenende ?
Hast Du mal versucht, ein Shell-Script (das vielleicht unter Windows erstellt wurde) auf einem Unix-Rechner auszuführen ? Aber du hast insofern recht, als Emacs diese Konvertierung auch kann (allerdings nicht automatisch): C-x RET c undecided-unix C-x C-w
(das funktioniert übrigens auf auf einem EMacs auf NT !)
Von Ein anderer Anonymous am Mi, 6. März 2002 um 14:34 #
Das ist doch auch noch viiiel zu lang ;) Da die ^M in jeder Zeile vorkommen, kann man einfach nur das letzte Zeichen in jeder Zeile entfernen:
:%s/.$ :w
und wem das ctrl-v, ctrl-m zu umstaendlich ist: Es reicht, ctrl-v zu tippen und dann return. Dieses return wird dann automatisch in ^M umgewandelt (wie andere Sonderzeichen auch)
Mal eine andere Sichtweise der Dinge: Ich erinnere mich an die Zeit in der es noch keine Bildschirme gab. Texte und Systemmeldungen wurden auf Nadeldruchern ausgegeben. Das ich damals noch nicht auf der Welt war, soll hier jetzt niemanden stören :-)
Also, gehen wir jetzt davon aus, wir haben 1970 einen Rechner mit Win, einen mit Linux und einen mit Mac OS. Der einzige Rechner der lesbaren Output produziert ist die Win-Dose! Beim Mac gibt es nur einen horizontalen schwarzen Balken, beim Linux nur eine Textzeile und am Ende der Zeile ein vertikale Linie. Ich wusste es schon immer! Win war schon 1970 revolutionär gut :-)
Wie ich auf dieses Gedankenspiel gekommen bin, dürft ihr selber überlegen !
Also wie du auf die Idee kommst 1970 koennte es ueberhaupt eine Ausgabe bei Mac und Win-Dose gegeben haben ist mir schleierhaft. Fest steht, das Unix schon 1969 existierte und damit auch schon eine Ausgabe machen konnte. ( Ich zaehle hier Linux einfach mal zu Unix, was es ja auch ist. ) Von Mac und Windows haben Steve und Bill zu der Zeit vielleicht mal getraeumt.
Von Noch'n Noergler am Mi, 6. März 2002 um 11:01 #
Habt ihr nicht auch den Eindruck, dasz das ganze hier wird immer mehr zum einem Treff fuer Milchmaedchen wird (wie es mein alter Mathelehrer - Gott hab ihn seelig - immer so treffsicher ausdruecken konnte) ?
Diese Frage ist durchaus ernst gemeint, vielleicht koennte man in Zukunft ja mal versuchen das _PRO_ im Name - welches IMHO bisher auch fuer professional gestanden hat - etwas staerker zu beachten...
Das besondere an der Linux-Gemeinde sollte sein, gerade auch Anfänger zu unterstützen. Wenn du so abgehoben hast, warum verschwendest du deine Zeit auf dieser Seite?? Als Profi kannst du doch schon an der Überschrift erkennen, dass es für dich keine grundlegend neuen Erkenntnisse gibt!
Merke: Wer Links anklicken kann, ist klar im Vorteil, aber der Profi kann sogar Klicks auslassen !
Nun war es frueher aber in der Tat mal so, dasz man sich hier als "Profi" ganz wohl gefuehlt hat, mittlerweile verschwindet dieses Gefuehl aber zusehends. Leider handelt es sich hierbei nicht um ein pro-Linux spezifisches Problem. In der Tat ist die Frequenz meines Besuches hier stark zurueck gegangen...
Darueber liese sich trefflich streiten. Bei einer Mehrzahl handelt es ich streng genommen nicht mehr um _eine_ Frequenz oder anders: die Frequenz eines einzelnen Besuches ist immer genau 1.
Ach ja, statt vim dateiname + Befehlswust geht auch ein recode ibmpc..latin1 dateiname direkt auf der Kommandozeile. Sinnvoll immer dann, wenn man den vi nicht nutzen will/was anderes mit der Datei vorhat.
beim Autor.
Was den Trick mit vim angeht: Mit "set fileformat" wird wirklich nur das Zeilenendeformat konvertiert, evtl. Umlaute etc. bleiben davon unberuehrt, was ein weiterer Grund fuer recode ist .
Ciao,
Dubu
Wenn Du kompilierst hast Du schon recht. Anders sieht es bei Skriptsprachen wie PHP bzw. auch bei HTML aus. Wenn Du den Code auf Performance optimieren willst, zählt jedes Byte. Schau Dir mal den Quelltext von div. WYSIWIG-Grütze-Editoren an. Dort hast Du massenhaft Zeilen in denen nur & co steht (+cr/lf) dann kommst Du auf mehr als 10% Einsparung.
Jochen
sed -e "s/^M//g" infile > outfile tuts dann auch.
MfG, Gernot
Der ganz gewöhnliche erweiterte KDE-Editor kann das schon nimmer.
Einfach laden, auf die andere Dateiart umstellen, speichern, fertig.
Aber ein Schnörkeltrick ist natürlich besser, weil das nur Insider verstehen. Wozu soll ich mir extra einen Editor installieren, den ich sonst nie benutze? Ist doch auch Platzverschwendung oder?
Ein anstaendiger Server hat noch nicht einmal X. Der VI ist aber definitiv auf jedem UNIX zu finden. Obwohl ein bisschen OT, denn genau der hier beschriebene Trick funktioniert nur im VIM.
PS:
Weil irgendjemand behauptet hat es wäre der Standard Linux Desktop? Oder weils SuSE standard mässig instaliert?
am anderstersten
MfG, Gernot
Hehe, und ohne KDE? Was soll ich auf nem Server mit ner GUI?
vi und die Tools gehen selbst via Win-Telnet.
Jürgen
Spass am Morgen, Gruss Pom
auch nicht unsicherer als jeder andere Telnet-Client.
Und ja, ich nehme immer brav ssh :)
Jürgen
zum Thema CR/LF: unter unix hab ich 1000 möglichkeiten dafür, aber unter win? ich hab notepad durch editpad.exe erstezt. die classic Version ist ebenfals frei. der kann die MACDOSUNIX Konvertierung.
gruß kevin
recode ist die Wahl, wenn's um mehr als nur CR geht (schaut Euch mal an, wie Recode zB sogar PC-Grafikchars in reine ASCII-Zeichen übersetzen kann...), ansonsten ist's Overkill...
Ich gebe aber zu: Ich klopp die CRs zumeist auch nur mit 'nem Editor ins Digiwana(TM) und die anderen Dinke sind halt für Skripte..
Meine Lieblingslösung zu dem Problem ist
perl -p -i.bak -e 's/^M$//' dateiname
Das schmeisst die CRs inline aus der Datei, legt aber vorsichtshalber eine Sicherungskopie mit Endung .bak an.
Jochen
Dieses gehampel mit recode etc. bleibt mir dadurch weitesgehend erspart.
Lars
Ein Glueck hab ich einen Kumpel von mir von emacs zu vi konvertieren koennen. Letzteren findet man wenigstens auf jedem Standard-Unix-Server, waehrend man fuer ersteren gleich einen extra Eintrag im Boot-Menue machen muss ;)
emacs-bashing am Morgen is schon was feines.
Gruesse
Keine Sorgen mit EMacs bei CRLF am Zeilenende ?
Hast Du mal versucht, ein Shell-Script (das vielleicht unter Windows erstellt wurde) auf einem Unix-Rechner auszuführen ?
Aber du hast insofern recht, als Emacs diese Konvertierung auch kann (allerdings nicht automatisch):
C-x RET c undecided-unix C-x C-w
(das funktioniert übrigens auf auf einem EMacs auf NT !)
:%s/^M$
:w
Und wer weiß, dass der Text abgesehen vom Zeilenende kein ^M enthält, lässt das $-Zeichen auch noch weg.
Da die ^M in jeder Zeile vorkommen, kann man einfach nur das letzte Zeichen in jeder Zeile entfernen:
:%s/.$
:w
und wem das ctrl-v, ctrl-m zu umstaendlich ist:
Es reicht, ctrl-v zu tippen und dann return. Dieses return wird dann automatisch in ^M umgewandelt (wie andere Sonderzeichen auch)
Also, gehen wir jetzt davon aus, wir haben 1970 einen Rechner mit Win, einen mit Linux und einen mit Mac OS. Der einzige Rechner der lesbaren Output produziert ist die Win-Dose! Beim Mac gibt es nur einen horizontalen schwarzen Balken, beim Linux nur eine Textzeile und am Ende der Zeile ein vertikale Linie. Ich wusste es schon immer! Win war schon 1970 revolutionär gut :-)
Wie ich auf dieses Gedankenspiel gekommen bin, dürft ihr selber überlegen !
Mario
Diese Frage ist durchaus ernst gemeint, vielleicht koennte man in Zukunft ja mal versuchen das _PRO_ im Name - welches IMHO bisher auch fuer professional gestanden hat - etwas staerker zu beachten...
Merke: Wer Links anklicken kann, ist klar im Vorteil, aber der Profi kann sogar Klicks auslassen !
"Die Linuxprofis" hat aber auch was ;).
Wenn du profesioneles Zeug suchst schau mal hier: http://www-106.ibm.com/developerworks/linux/
Was ist denn dass für ein unnötiges Genörgle.
War den werten Herrn der Kurztipp zu einfach? :-(
Zum Anon oberhalb.
Wenn Du schon so ein Profi bist, dann schreib wenigstens ".. die Frequenz meiner Besuche ..."