[linux-l] dos2unix

Volker Grabsch vog at notjusthosting.com
So Mär 11 16:47:08 CET 2007


On Fri, Mar 09, 2007 at 10:33:27AM +0100, Manuel Tennert wrote:
> ich habe gerade ein Problem bei einem unserer Kunden.
> In einem Perl-Script verwende ich auch den dos2unix Befehl, leider 
> kommen beim Kunden andere Resultate bzw. andere Kodierungen heraus, als 
> auf unserer Maschine, Ausgangsdaten sind die gleichen.
> Betriebssystem Kunde: Solaris 10
> Betriebssystem wir: Solaris 9

Bei mir ist das sogar noch schlimmer: Ich habe Zeilenenden-Probleme
zwischen Linux, Solaris und Windows/MinGW zu koordinieren. Und
dos2unix finde ich nicht überall vor.

Wenn ich portable Shellscripte schreibe, mach ich das daher immer
per Hand. Hier einige Varianten, je nach Geschmack:

dos2unix:

    sed 's/\r//' < dos.txt > unix.txt
    sed 's/\r$//' < dos.txt > unix.txt
    tr -d '\r' < dos.txt > unix.txt

unix2dos:

    sed 's/$/\r/' < unix.txt > dos.txt
    awk '{print $0"\r"}' < unix.txt > dos.txt

Da weiß man wenigstens genau, was passiert.

> Im großen und ganzen geht es darum, dass der Kunde unter Windows 
> XML-Daten bearbeiten, diese aber im Unix-Format in ein System eingelesen 
> werden müssen, daher auch die Konvertierung.

Dann solltet ihr diesem "System" mal die XML-Standard beibringen. Ich
kenne keinen einzigen ernstzunehmenden XML-Parser, bei dem die
Zeilenenden irgendeinen Unterschied machen. Zwischen den Tags sind das
ja "ignorable whitespaces".

Oder habt ihr *innerhalb* der Tags einen Text mit Zeilenumbrüchen?
Dann herzliches Beileid! Falls irgendwie möglich, sollten diese
Textabschnitte standardisiert werden, und endgültig festgelegt
werden, ob diese Unix- oder Windows-Zeilenenden haben sollen.

Oder es so geschickt definieren, wie das in HTML gemacht wird:
Leerzeichen und Zeilenumbrüche gelten alle nur als Leerzeichen. Absätze
werden durch gesonderte Tags <p>...</p> markiert.

Ich sehe hier auf jeden Fall ein tieferes Problem mit dem Datenformat.
Gerade bei XML hat man die Chance, System-Eigenheiten auszubügeln,
sodass solche Konvertierungs-Aktionen nicht mehr nötig sind. Diese
Chance sollte man auch nutzen.


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l