Linux: Trabajar con awk y sed

Este ejemplo de Linux involucra una base de datos de libros que incluye el número ISBN de cada título. En los viejos tiempos, los números ISBN tenían diez dígitos e incluían un identificador para el editor y un número único para cada libro. Los números ISBN ahora son trece dígitos para libros nuevos.

Los libros antiguos (los publicados antes del primero de 2007) tienen tanto el número antiguo de 10 dígitos como el nuevo número de 13 dígitos que se pueden utilizar para identificarlos. Para este ejemplo, el número de 10 dígitos existente permanecerá en la base de datos y se agregará un nuevo campo, que contiene el número ISBN-13, al final de cada entrada.

Para obtener el número ISBN-13 para las entradas existentes en la base de datos, comience con 978, luego use los primeros 9 dígitos del número ISBN anterior. El decimotercer dígito es un cálculo matemático (un dígito de control ) que se obtiene haciendo lo siguiente:

  1. Suma todos los dígitos impares (el primero, el tercero, el quinto, etc.).

  2. Multiplique todos los dígitos pares por 3 y súmelos.

  3. Sume el total del Paso # 2 al total del Paso # 1.

  4. Averigüe lo que necesita sumar para redondear el número al 10 más cercano. Este valor se convierte en el decimotercer dígito.

Por ejemplo, considere el ISBN de 10 dígitos 0743477103. Primero se convierte en 978074347710 y luego los pasos funcionan así:

  1. 9 + 8 + 7 + 3 + 7 + 1 = 35

  2. 7 * 3 = 21; 0 * 3 = 0; 4 * 3 = 12; 4 * 3 = 12; 7 * 3 = 21; 0 * 3 = 0; 21 + 0 + 12 + 12 + 21 + 0 = 66

  3. 66 + 35 = 101

  4. 110-101 = 9. El ISBN-13 se convierte así en 9780743477109.

La base de datos inicial se parece a:

0743477103: Macbeth: Shakespeare, William
1578518520: La solución del innovador: Christensen, Clayton M.
0321349946: (SCTS) Especialista técnico certificado de Symantec: Alston, Nik
1587052415: Control de admisión a la red de Cisco, Volumen I: Helfrich, Denise

Y desea que la base de datos resultante cambie para que cada línea se parezca a algo como esto:

0743477103: Macbeth: Shakespeare, William: 9780743477109

El ejemplo que sigue cumple este objetivo. No es la cosa más bonita jamás escrita, pero recorre el proceso de abordar este problema, ilustrando el uso de awk y sed .

LEER  Cómo ver fotos en su tableta con Windows 8

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *