orm@doc-tcpip.org

Erstellt: Februar 2001 - Letzte Modifikation: Mai 2001

[ Main | Local ]


Wie entferne ich die vielen ^M aus einem Textfile?


Man geht in den Colon Mode und tippt folgendes:
g/CTRL V M/s///g
==> CTRL V M heisst: CTRL gedrückt halten und dann v m....
(also CTRL V ist das Dächlein)

Das ganze kommt meist daher: das File wurde von einem DOS Rechner übertragen. Und zwar in ASCII. ^M ist CR, Carriage Return, in hex OD. Normal ist OA für ein line feed. DOS macht daraus OAOD.

Solche Steuerzeichen kann man mit dem vi sehen:
set list
==> CTRL I ist ein Tab, $ ist ein Line Feed.

Wie immer gibt es viele Wege:

Mit dem vi:

:%s/^V^M//
oder
:%!col -bx

Zeilenvorschub-Zeichen können in Suchbefehlen mit regulären Ausdrücken angegeben werden:
:%s/\%0d\%0a/\%0a/
Wechsel eine Datei im DOS Format ins Unix Format.
oder mit sed, dem Stream Editor:

sed -e "s/^V^M//" filename > output filename

Das ist noch nicht alles:

cat filename1 | tr -d "^V^M" > newfile

Noch mehr:
col < infile > outfile (Nie den gleichen Namen, sonst Daten weg..)

Und zu guter Letzt:

perl -pi -e "s:^V^M::g" filenames


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | SMTP | Tracing | GPS ]

Copyright 2001-2014 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )