Ralf Eisenreich

SQLBlog.DE | ..things to remember

March 1st, 2006

unix – windows: zeilenumbrüche zwischen dokumenten konvertieren

IT, Unix, Windows, by Ralf.

einleitung
es ist sicherlich schon jedem begegnet: eine ascii-datei (zum beispiel eine simple textdatei), die unter windows abgespeichert wird, hat unter unix diese hässlichen “^M” am Ende jeder Zeile und umgekehrt hat eine datei von einem unix-system unter windows keine zeilenumbrüche mehr (alles steht in einer zeile). es muss also konvertiert werden, falls man keinen guten editor zur hand hat, wie zum beispiel ultraedit unter windows oder quanta unter unix.

ursache
die zeilenumbrüche werden unter windows und linux unterschiedlich dargestellt:
- unix verwendet: LF (=line feed)
- win verwendet: CR LF (=carriage return & line feed)

CHAR ASCII PROG

LF   10   'n'

CR   13   'r'

konvertieren
abhilfe schaffen 2 möglichkeiten:
1) man benutzt für die jeweilige konvertierung folgende programme:
- unix2dos (unter /usr/bin/unix2dos)
- dos2unix (unter /usr/bin/unix2dos)

oder

2) ein kleines einzeiler script:

perl -pi -e 's/rn/n/g' #win to unix

perl -pi -e 's/n/rn/g' #unix to win

am besten werden die scripte als sog alias in die konfiguration der shell-umgebung eingegeben. damit sind sie als befehl aufrufbar, ohne dass eine datei angelegt wurde.

- kommandozeile öffnen und in einem editor die anpassungen vornehmen:

ee /home//.bashrc

- nun kopieren sie folgenden code:

alias w2u="perl -pi -e 's/rn/n/g'"

alias u2w="perl -pi -e 's/n/rn/g'"

achten sie darauf, dass am ende der datei wieder eine leerzeile stehen sollte. möchten sie diese aliase auch benutzen, wenn sie sich von einem entfernten rechner anmelden, müssen sie die einträge auch in der datei .bash_profile vornehmen.
falls sich die datei .bashrc nicht öffnen lässt, sollte sie mit ‘touch .bashrc’ erstellt werden. ausserdem müssen sie die shellumgebung bash benutzen, andernfalls müssen die einträge in eine andere datei gemacht werden (und ggf verändert werden).

die konvertierung erfolgt nun durch:

w2u  #win to unix

u2w  #unix to win

Back Top

Responses to “unix – windows: zeilenumbrüche zwischen dokumenten konvertieren”

Comments (0) Trackbacks (0) Leave a comment Trackback url
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Security Code: