textdatei lesen: linux <-> windows

dosenfleisch

dosenfleisch

Foren As
hallo,

ich habe ein hoffentlich simples problem, dessen lösung ich nicht finde.

ich erstelle eine textdatei unter linux und schreibe sie auf eine fat32 mit winxp drauf.
Code:
echo 35 > /mnt/winxp/zahl.txt
wenn ich nun aber diese datei unter windows einlese (mit autohotkey), dann habe ich dieses kästchen hinter der Zahl 35, sodaß die weitere verarbeitung nicht sauber läuft.

wie kann ich diese zahl.txt mit der "35" schreiben, ohne daß windows darin mehr als die pure zahl erkennt?

danke schonmal!

GNU bash, version 3.1.17(1)-release (i586-mandriva-linux-gnu)
 
Was für'n Kästchen? 0o


Wahrscheinlich fehlt dir einfach nur der CR (Carriage Return)...
 
Das Stichwort für deine $Suchmaschinen - Recherche lautet:

unix2dos
 
@Gott_in_schwarz
ich weiß zwar nicht was das ist, weiß aber, daß du das richtige meinst.
genau dieses kästchen erscheint unter windows nach der zahl 35, wogegen unter linux nur diese 35 in der datei steht.

@Bâshgob
danke.


kann man nicht die datei von vornherein für windows lesbar schreiben?
 
Zuletzt bearbeitet:
kann man nicht die datei von vornherein für windows lesbar schreiben?
Ja, du kannst sie von vonrherein in windows schreiben...

Oder du pipest alles vorher (vorm ins Datei schreiben) durch unix2dos (was ja afair auch nur ein alias für einen recode (? encode? kA, vergessen) ist) oder, du tust so:
Code:
echo -ne "35\r\n" > windowsdatei.exe
Damit hast du quasi bereits eine fertig für windows kompilierte Datei! (Man achte auf die Endung.)

Für apple-Zeugs wär das dann:
Code:
echo -ne "foo\r" >apple.tree

Es ginge auch:
Code:
echo -n $'35\r\n' > windowsdatei.sys
Sollte deine bash können. (Für macs dann halt analog nur \r)
Editoren haben auch oft Optionen, wo man sowas einstellen kann. (Kate konnte das zB afair.)
Mit vim kann man sich ja eben ein kleines shortcut schreiben oder was auch immer. emacs kriegt das bestimmt auch hin. Also ja: es geht.
 
@Gott_in_schwarz

ich war mir sicher, hier schonmal eine lösung mit "echo" gesehen zu haben.
probier ich morgen aus.

übrigens, eine unix2dos-alternative, auch für linux, ist tofrodos.
 
ich war mir sicher, hier schonmal eine lösung mit "echo" gesehen zu haben.probier ich morgen aus.

Du musst auch danach fragen.
Wenn du uns fragst warum da ein Kästchen ist dann sagen wir, dass das daran liegt dass es im ASCII Zeichensatz zwei Zeichen gibt CR und LF die noch aus der Schreibmaschinenzeit kommen. CR=Carriage Return also zurück anden Zeilenanfang (das Schieben bei der Schreibmaschine) LF=Line Feed (Zeilenvorschub, also den Hebel drücken an der Schreibmaschine) Linux und MacOS benutzen nur eines der beiden, spart Platz und ist irgendwie logisch, Windows erwartet beide Zeichen. Ist auch irgendwie logisch. Nur anders.

Die meisten Editoren (für Windows *und* Linux) beherrschen beides. Wordpad z.B. kann das. Kate unter Linux ebenso. In der Manpage von echo steht dass du CR mit \n und LF mit \r erzeugen kannst wenn du echo mit -e aufrufst.
 
Zuletzt bearbeitet:
Für die vim-Liebhaber:

Code:
<esc>:set fileformat=dos
 
Zurück
Oben