Autor(es) original(es) | Douglas McIlroy ( Laboratorios Bell de AT&T ) |
---|---|
Desarrollador(es) | Varios desarrolladores comerciales y de código abierto |
Lanzamiento inicial | Noviembre de 1973 ( 1973-11 ) |
Repositorio |
|
Escrito en | do |
Sistema operativo | Unix , similar a Unix , Plan 9 , Inferno , OS-9 , MSX-DOS , IBM i |
Plataforma | Multiplataforma |
Tipo | Dominio |
Licencia | coreutils : GPLv3+ Plan 9: Licencia MIT |
tr es un comando de Unix , Plan 9 , Inferno y sistemas operativos similares a Unix . Es una abreviatura de translate o transliterate , que indica su operación de reemplazar o eliminar caracteres específicos en su conjunto de datos de entrada.
La utilidad lee un flujo de bytes desde su entrada estándar y escribe el resultado en la salida estándar . Como argumentos , toma dos conjuntos de caracteres (generalmente de la misma longitud) y reemplaza las apariciones de los caracteres en el primer conjunto con los elementos correspondientes del segundo conjunto. Por ejemplo,
es 'abcd' 'jkmn'
asigna todos los caracteres a a j , b a k , c a m y d a n .
El conjunto de caracteres se puede abreviar mediante el uso de rangos de caracteres. El ejemplo anterior se podría escribir así:
es 'anuncio' 'jkmn'
En las versiones de POSIXtr
compatibles , el conjunto representado por un rango de caracteres depende del orden de intercalación de la configuración regional , por lo que es más seguro evitar rangos de caracteres en scripts que puedan ejecutarse en una configuración regional distinta de aquella en la que se escribieron. Los rangos a menudo se pueden reemplazar con conjuntos de caracteres POSIX como [:alpha:] .
La s
bandera hace tr
que se compriman secuencias de caracteres adyacentes idénticos en su salida en un solo token. Por ejemplo,
tr -s '\n'
reemplaza secuencias de uno o más caracteres de nueva línea con una sola nueva línea.
La d
bandera hace tr
que se eliminen todos los tokens del conjunto de caracteres especificado de su entrada. En este caso, solo se utiliza un único argumento de conjunto de caracteres. El siguiente comando elimina los caracteres de retorno de carro.
tr -d '\r'
La c
bandera indica el complemento del primer conjunto de caracteres. La invocación
tr -cd '[:número_de_número:]'
Por lo tanto, elimina todos los caracteres no alfanuméricos.
La versión original de tr
fue escrita por Douglas McIlroy y se introdujo en la versión 4 de Unix . [1]
La versión tr
incluida en GNU coreutils fue escrita por Jim Meyering. [2] El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes de GNU Unix-like. [3] También está disponible en el shell OS-9 . [4] Un comando también es parte de MSX-DOS2 Tools de ASCII para MSX-DOS versión 2. [5] El comando tr también ha sido portado al sistema operativo IBM i . [6] tr
La mayoría de las versiones de tr
, incluidas GNU tr
y Unix clásico tr
, funcionan con caracteres de un solo byte y no son compatibles con Unicode . Una excepción es la implementación de Heirloom Toolchest , que proporciona compatibilidad básica con Unicode.
Ruby y Perl también tienen un operador interno tr , que opera de manera análoga. [7] [8] El comando de mapa de cadenas de Tcl es más general, ya que asigna cadenas a cadenas, mientras que tr asigna caracteres a caracteres. [9]