[linux] Re: charter
J.
mailing-lists op xs4all.nl
Vr mei 27 10:15:45 CEST 2005
On Fri, 27 May 2005 AHendriks op rdw.nl wrote:
> > -----Original Message-----
> > From: linux-bounce op lists.nllgg.nl
> > [mailto:linux-bounce op lists.nllgg.nl] On Behalf Of joop gerritse
> > Sent: vrijdag 27 mei 2005 9:06
> > To: linux op lists.nllgg.nl
> > Subject: [linux] Re: charter
> >
> > ^M kom je meestal tegen in files die op een DOS-systeem
> > aangemaakt zijn. Het is het oude Carriage Return teken.
> > DOS-bestanden beƫindigden een regel met LF (Line Feed) en CR,
> > zodat ook ouderwetse teletypes ze konden uitprinten.
> > Unix-systemen werken met alleen LF. Op Usenet heb ik nog wel
> > eens mensen zich kwaad zien maken over al die ^M-tekens (maar
> > ja, op Usenet maakt altijd wel iemand zich kwaad). Er zijn
> > programma's als fromdos en todos om dit soort hobbels weg te werken.
>
> Het zou heel goed kunnen dat die bestanden inderdaad op een DOS systeem zijn
> aangemaakt, maar nu heb ik een aantal config bestanden waar het carriage
> return teken in voor komt, en in 1 bestand komt het niet voor, graag wil
> het toch toevoegen, al was het alleen om het testen of het wat uit
> maakt, hoe krijg ik de tekens er bij ?
>
> Arjan
Om van DOS naar Linux te converteren, dus de \CR\NL of \015\012 om te
toveren tot alleen een \012 [newline].
~: tr -d '\015' < foo.txt > newfoo.txt
Echt geen apart programma voor nodig.. Je kan een alias in je .bashrc
aanmaken.
alias nodos="tr -d '\015'"
Op die manier wordt het:
~: nodos < foo.txt > newfoo.txt
En andersom van Linux naar DOS dus van \NL naar \CR\NL of \012 naar
\015\012 .
awk '{/\n$/; printf "%s\015\012", $0}' < foo.txt > newfoo.txt
Ook dit command kan je weer gemakkelijk in een alias verwerken.
Om te testen wat voor een regel-einden een bestand nu heeft.
~: file newfoo.txt
newfoo.txt: ASCII text, with CRLF line terminators
Of bijv. met het programma `od'.
Suc6.
J.
p.s.
Karakters en bijbehorende codes kan je opvragen met `man ascii` .
More information about the Linux
mailing list