require(".zlconfig.php"); require("$webroot/cabecera.php"); ?> $navIdx->Asignar("texto_indice.php","Índice"); $navIzq->Asignar("texto_cap5.php","Capítulo 5"); $navDer->Asignar("texto_cap7.php","Capítulo 7") ?>
$graf_titulo = "$base_grafs/docs_head.png"; ?> require("$webroot/titulos.php"); ?>6. Traducción de caracteres con tr.
Utilizaremos tr para sustituir en un fichero unos caracteres por otros.
tr [-cds] [cadena1 [cadena2]] [< file.in] [> file.out] | ||
-c | Toma los caracteres que no estén en cadena1. | |
-d | Borra los caracteres que estén en cadena1. | |
cadena1 | Lista de caracteres para ser sustituidos. | |
cadena2 | Cuando un carácter cadena2 aparece dos o más veces consecutivas en la salida, comprime la secuencia de caracteres repetidos dejando un sólo carácter. | |
-s | Lista de caracteres para sustituir. Si la segunda cadena contiene menos caracteres que la primera, sólo se sustituirán los caracteres correspondientes. |
Se pueden emplear corchetes para indicar un rango de caracteres ASCII. Así [0-9] corrresponde a los dígitos del 0 al 9 incluidos. Además, pueden ser sustituidos dos caracteres a la vez si dentro del corchete éstos van entre puntos: [.c1c2.].
Cuando el carácter a sustituir está dado en octal deberemos señalarlo con un \. Así \040 es el espacio. Además hay una notación simplificada *n para cuando se quiere sustituir un mismo carácter repetido n veces. Por ejemplo P*5 significa PPPPP.
EJEMPLOS.
Si queremos sustituir todas las mayúsculas por minúsculas en un fichero
$ tr "[A-Z]" "[a-z]" < titulos.lis > titulos2.lis
Para eliminar los números de un fichero haríamos
$ tr -d "[0-9]" < titulos.lis > titulos2.lis
Otra posibilidad sería cambiar todos aquellos caracteres que no sean mayúsculas ni minúsulas por un signo -
$ tr -c "[a-z][A-Z]" "-*" < tiotulos.lis > titulos2.lis
O cambiar los espacios y tabuladores por nueva líneas
$ tr " \011" "[\012*]" < titulos.lis > titulos2.lis
require("$webroot/pie.php") ?>