Asignar("texto_indice.php","Índice"); $navIzq->Asignar("texto_cap5.php","Capítulo 5"); $navDer->Asignar("texto_cap7.php","Capítulo 7") ?>

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