Home / LinuxUser / 2005 / 02 / tr, dos2unix

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Tauschgeschäfte

tr, dos2unix

01.02.2005 Das Programm "tr" ist ein wahrer Zauberkünstler: Mit diesem Befehl tauschen Sie Zeichenketten in Textdateien aus. Ob es um das Ersetzen einzelner Buchstaben und Ziffern geht oder um das Zusammenschrumpfen mehrerer Leerzeichen – "tr" gibt sich vielseitig.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder Gnome regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Das Kommando tr dient dazu, in Texten einzelne Zeichen durch andere zu ersetzen. Das Kommando erhält seinen Input aus der Standardeingabe und schreibt das Ergebnis auf die Standardausgabe. Sie können aber beides mit den bekannten Operatoren auch umleiten. Gerade im Einsatz zusammen mit anderen Shell-Befehlen zeigt tr seine ganze Stärke und sorgt für zauberhafte Verwandlungen.

Einfach nur tauschen

Der Befehle tr nimmt zwei Zeichenketten als Argumente entgegen und ersetzt in Texten alle Zeichen des ersten Arguments durch das entsprechende Zeichen des zweiten. Was zunächst kompliziert klingt, kann man sich anhand eines einfachen Beispiels schnell vor Augen führen. Der folgende Aufruf ersetzt im Wort "Petronella" alle "e" durch "a":

$ echo Petronella | tr 'e' 'a'
Patronalla

Natürlich können Sie auch in einer Datei selbst bestimmte Zeichenketten austauschen. Das Kommando tr '1' '2' < test.txt ersetzt in der Datei test.txt alle Vorkommen von "1" durch eine "2" und leitet den Output an die Standardausgabe. Dabei sollten Sie beachten, dass in den Argumenten, die Sie übergeben, die Zeichen wie in Feldern angeordnet sind: Jedem Zeichen aus dem ersten Argument wird sein entsprechender Gegenpart aus dem zweiten Argument zugeordnet. So ersetzt tr 'abc' 'xyz' jeweils "a" durch "x", "b" durch "y" und "c" durch "z". Ist die zweite Zeichenkette kürzer als die erste, füllt tr die Lücke mit dem letzten Zeichen aus der zweiten Zeichenkette auf.

So stellt der Aufruf tr 'abc' 'z' < test.txt keinerlei Problem dar. Hier ersetzt tr alle Vorkommen von "a", "b" und "c" jeweils durch "z". Hingegen scheitert tr bei dem Versuch, "ä" durch "ae" zu ersetzen: Die Felder sind nicht gleichlang, und "ä" wird hier nur gegen "a" getauscht. Wer einen derartigen Tauschvorgang anstoßen möchte, nimmt besser das Programm sed [1] zu Hilfe.

Aus Groß mach Klein

Als besonders praktisch erweist sich der Einsatz von tr, wenn es darum geht, Groß- und Kleinbuchstaben miteinander zu vertauschen. Dabei können Sie natürlich die beiden Argumente gleich als ganze Listen von Feldern definieren, z. B.:

tr 'a-z' 'A-Z' < test.txt

Alternativ setzen Sie vordefinierte Zeichenklassen ein und schreiben:

tr [:lower:] [:upper:] < test.txt
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

2739 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...