tr: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 98: | Zeile 98: | ||
== Weblinks == | == Weblinks == | ||
{{ | {{Weblinks}} | ||
}} | {{url_enwikipedia|Tr_(Unix)|Tr (Unix)}} | ||
{{Fuss}} | |||
{{cat|Shell-Befehl}} | {{cat|Shell-Befehl}} | ||
{{cat|Zeichen}} | {{cat|Zeichen}} |
Version vom 7. Februar 2010, 18:15 Uhr
Der Shell-Befehl tr (transliterate) wandelt Zeichen um. Dabei wird von der Standardeingabe (stdin) gelesen und auf die Standardausgabe (stdout) geschrieben. Jedem Zeichen aus dem ersten Argument wird sein entsprechender Gegenpart aus dem zweiten Argument zugeordnet.
Verwendung
Alle "e" in "petronella" werden durch "a" ersetzt.
$ echo petronella | tr 'e' 'a'
In jeder Zeile wird ":" durch "\012" (end of line-Zeichen) ersetzt. Hier werden die PATH-Angaben untereinander angegeben.
$ echo $PATH | tr ':' '\012'
In jeder Zeile wird ":" durch "\012" (end of line-Zeichen) ersetzt. Hier werden die PATH-Angaben untereinander sortiert angegeben. Ausserdem werden doppelte Zeilen eliminiert.
$ echo $PATH | tr ':' '\012' | sort | uniq
Umwandlung aller Zeichen aus Zeichenfolge 1 (a-z) der Datei "file" in die Zeichen der Zeichenfolge 2 (A-Z), hier also Umwandlung aller Kleinbuchstaben in Grossbuchtsaben.
$ tr a-z A-Z < file oder $ tr [:lower:] [:upper:] < file
Umwandlung aller a zu x, aller b zu y und aller c zu z.
$ tr abc xyz < file
Umwandlung aller a, b und c in Datei "file" zu z.
$ tr abc z < file
Löschen aller Zeichen aus Zeichenfolge 1 (b-h) in Datei "file".
$ tr -d b-h < file oder $ tr -d '[b-h]' < file
Zeilenweise Ausgabe aller Zeichen aus Zeichenfolge 1 (b-h), die in Datei "file" enthalten sind.
$ tr -cd '[b-h]\012' < file oder $ tr -cd '[b-h]\n' < file
Löschen der Zeilenschaltungen in Datei "file1" (Windowstext) und Ausgabe des Ergebnisses in Datei "file2" (Linuxtext).
$ tr -d "\015" < file1 > file2 oder $ tr -d '\r' < file1 > file2
Löschen aller Zeichen ausser Leerzeichen, Gross- und Kleinbuchstaben in Datei "file".
$ tr -c -d 'A-Z a-z' < file
Löschen mehrfach hintereinander vorkommende Zeilenumbrüche und Ersetzen durch einfache Zeilenumbrüche in Datei "file".
$ tr -s '\012' '\012' < file
Löschen doppelter Leerzeichen und Tabulatoren und Ersetzung durch einfache Leerzeichen in Datei "file".
$ tr -s [:blank:] ' ' < file
Umbenennen aller Dateien im aktuellen Verzeichnis (für den Benutzer sichtbar) sodass der neue Dateiname anstatt Leerzeichen neu Unterstriche enthält.
$ for i in *; do mv -v "$i" $(echo $i | tr ' ' '_'); done
Beispiele
...
$ tr ad AD <<<HERE abcdef HERE AbcDef
...
$ VARIABLE=abcdef $ echo $VARIABLE | tr [a-z] [A-Z] ABCDEF
...
$ VARIABLE=abcdef $ tr [a-z] [A-Z] <<<HERE $VARIABLE HERE ABCDEF
...
$ VARIABLE=abcdef $ echo $VARIABLE > /tmp/testfile $ tr [a-z] [A-Z] /tmp/testfile
Ermittlung der Wörter, die sich in der Datei "file" befinden. Dabei werden zuerst alle Grossbuchstaben durch Kleinbuchstaben ersetzt. Danach werden "Nonletters" in Zeilenende-Zeichen ("\n") umgewandelt. Schliesslich werden die Wörter mit sort sortiert und dabei mehrfach auftauchende unterdrückt.
$ cat file | tr A-Z a-z | tr -c a-z\' '\n' | sort -u
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | eng | Tr (Unix)wbm | Enzyklopädischer Artikel |