#4sysadmins

Inicio » Comandos para transformar archivos

Comandos para transformar archivos

expand : Convierte tabulaciones en espacios, por defecto expand presupone que 8 espacios equivalen a 1 tabulación.

[Opciones]:

  • cambiar el número de espacios por tabulación (por defecto 8): -t num (–tabs=NUM)

unexpand : Es el opuesto a expand, es decir sustituye varios espacios por tabulaciones. Sirve para comprimir el tamaño del archivo que contenga muchos espacios, acepta las mismas opciones que expand

od : Muestra un archivo en octal (por ejemplo archivos de música que no son fáciles de mostrar en ASCII). od también permite representar archivos en hexadecimal o en decimal.

[Opciones]:

  • Representar en octal: -b
  • Representar en ASCII: -c
  • Representar en decimal: -d

sort (ordenar) : Nos permite ordenar la salida de un archivo.

[Opciones]:

  • Ignorar mayúsculas y minúsculas (por defecto sort distingue mayúsculas de minúsculas): -f
  • Ordenar por la abreviatura de los meses (JAN-DEC): -M (–month-sort)
  • Ordenar por números: -n (–numeric-sort)
  • Comprobar si el archivo está ordenado: -c
  • Combina los archivos listados en uno solo (deben de estar previamente ordenados): -m
  • Invertir el orden por defecto: -r (–reverse)
  • Especificar el campo por el que se quiere ordenar (por defecto el primer campo): -k campo (–key=campo)

Nota: Se puede ordenar por varios campos separándolos por comas

  • Ignorar campos en blanco a la izquierda: -b
  • Considerar solo espacios en blancos y caracteres alfanuméricos: -d
  • Considerar solo caracteres imprimibles: -i

split : Divide un archivo en 2 o mas archivos. Normalmente hay que indicar un nombre de salida al que se le añadirán los sufijos (bien numéricos o alfabéticos).

[Opciones]:

  • Dividir un archivo por bytes: -b tamaño (–bytes=tamaño)

Nota: Puede cortar el archivo por la mitad de una línea.

  • Dividir en bloques de bytes determinados por las líneas: -C=tamaño (–line-bytes=tamaño)

Nota: Si el tamaño de la línea es superior al indicado, esta, se dividirá en varios archivos, anulando la acción de este parámetro

  • Dividir por número de líneas: -l num_lin (–lines=lineas)
  • Determina el máximo de caracteres para el sufijo (por defecto el sufijo es de 2 caracteres): -a num_sufijo (–sufix-length=num_sufijo)

Nota: $split -l 2 -a 3 arc1.txt partes , tendremos como resultado partes de 2 líneas con sufijos de 3 caracteres-> partesaaa partesaab…

  • Utilizar sufijos números: -d (por defecto comienzo desde 0)

tr : cambia caracteres individuales por otros. Con el siguiente ejemplo se comprenderá fácilmente.

$tr BCJ bc < archivo1.txt

Nota: Los caracteres BC que aparezcan en archivo1.txt serán sustituidos por bc, por el contrario los que aparezcan como J, serán sustituidos por c. Esto ocurre porque GRUPO1 es mayor que GRUPO2.

[Opciones]:

  • Si queremos cortar GRUPO1 en función de GRUPO2 (para que no se produzca la sustitución de la J como en el ejemplo anterior): -t (–truncate-set1)
  • Reducir a 1 caracteres consecutivos encontrados en el texto y que son definidos en GRUPO1: -s (–squeeze-repeats)

Ejemplo:

$tr -s r R < archivo1.txt : Si en archivo1 existe esto: error, el resultado será eRoR
  • Para eliminar de archivo1.txt todos los caracteres (BCJ), usamos: -d

Nota: Podemos prescindir de GRUPO2, ya que no se tendrá en cuenta.

tr permite el uso de atajos y uso de caracteres especiales.

[Atajos]:

  • \\ : barra invertida
  • \n : nueva linea
  • \t : tabulación horizontal
  • \v : tabulación vertical
  • AM : Caracteres de la A a la M
  • [:alnum:] indicar este atajo en un GRUPO tendrá como consecuencia el incluir todos los números y letras
  • [:upper:] todas las letras mayúsculas
  • [:lower:] todas las letras minúsculas
  • [:digit:] todos los dígitos
  • [:alpha:] todas las letras
  • [:space:] todos los espacios en blancos

uniq : Elimina las líneas duplicadas de un archivo. Útil si se usa como entrada (a uniq) desde la salida de otro comando (sort por ejemplo):

$sort archivo1.txt |uniq

[Opciones]:

  • Preceder la línea con el nº de concurrencias: -c
  • Mostrar solo las líneas repetidas: -d
  • Ignorar mayúsculas de minúsculas: -i
  • Mostrar solo las líneas que son únicas: -u
  • Nota: uniq no detecta líneas repetidas a menos que sean adyacentes.

iconv: Realiza conversiones de codificación entre conjunto de caracteres o archivos.

$ iconv -f <codificación_de_origen> -t <codificación_de_salida_deseada> archivo de entrada

Opciones:

  • Listar los códigos de caracter conocidos: -l (–list)
  • Especificar un archivo de salida diferente a la salida estandar: -o <file> (–output <file>)

mpage: Lee archivos de texto plano o PostScript y les aplica un formato que reduce el tamaño por página en caso de querer ahorrar papel.

$ mpage -P nombrecoladeimpresión archivo.txt

Opciones:

  • Cambiar el número de páginas del archivo original a ajustar en cada página impresa (por defecto se reducen 4 páginas del original por 1 impresa): -1, -2, -4 y -8
  • Ajusta el tamaño del papel de impresión: -b<tamaño-papel>

Tamaño papel puede ser:

  • A3, A4, Letter (catas US) o Legal (estándar) podemos ver mas tamaños con la opción -bl
  • Imprime a doble cara, 1º y 4º página en una hoja y 2º y 3º en otra hoja: -e
  • Usar una línea horizontal para separa la cabecera de la página con el resto del contenido: -H
  • Impresión inversa. Comienza a imprimir desde la última página: -r

Nota: Existen otras opciones como por ejemplo, cambiar el formato de impresión (vertical por defecto) a horizontal -l,  modificar los margenes -m, etc..


Deja un comentario, Gracias!