[linux-l] dos2unix

Volker Grabsch vog at notjusthosting.com
So Mär 25 14:22:02 CEST 2007


On Sat, Mar 24, 2007 at 03:43:14PM +0100, Oliver Bandel wrote:
> On Fri, Mar 23, 2007 at 07:57:49PM +0100, Steffen Dettmer wrote:
> > > > http://en.wikipedia.org/wiki/Newline
> > > > 
> > > > empfielt scheinbar:
> > > > 
> > > > tr -d '\r' < inputfile > outputfile
> > > > 
> > > > hilft das?

Ich hab diesen Quatsch mal notdürftig korrigiert.
Der 'tr'-Befehl bekam von mir eine Warnung,
und der 'sed'-Befehl ist aufgesäubert.

> > > Das würde ein alleinstehendes \r ohne ein \n auch löschen, was nicht
> > > das ist, was Du willst.
> > 
> > In der Praxis muss man aber ein \r nicht unbedingt erwarten, oder ;) ?
> 
> Sonderfälle unberücksichtigt zu lassen ist aber nicht die
> solideste Herangehensweise.
[...]
> Also lieber gleich richtig machen :-)

Full ACK.


Ich kann euch sogar solch einen Fall beisteuern: Ich habe ein größeres
Shellscript entworfen, das eine existierende Applikation "aufsäubert",
indem es Rechte odentlich setzt, Zeilenenden überprüft/korrigiert, etc.

Dieses Script muss aber nicht nur unter Linux laufen, sondern auch unter
Solaris. Da hab ich kein dos2unix, aber das macht eh mehr Ärger als es
nützt.

Auf dieser Solaris-Kiste hab ich aus irgendeinen Grund kein CR erzeugen
können, auch nicht mittels '\r'. Das frisst er einfach nicht. Also blieb
mir nichts weiter übrig, als sowas hier zu schreiben:

    grep -l -- '^M$'

    sed 's/^M$//'

wobei anstelle von ^M ein echtes CR steht, was im vi als ^M dargestellt
wird.


Dem aufmerksamen Leser dürfte die Ironie aufgefallen sein, dass dieser
Ausnahmefall das Korrektur-Script selbst ist. *g*


Viele Grüße,

    Volker

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



Mehr Informationen über die Mailingliste linux-l