Linux: trabajar con awk y sed

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

Libros antiguos (los publicados antes del primero de 2007) tienen tanto la edad de 10 dígitos y un nuevo número de 13 dígitos que se puede utilizar para identificarlos. Para este ejemplo, el número de 10 dígitos existente permanecerá en la base de datos y un nuevo campo - sostiene el número ISBN-13 - se añade al final de cada entrada.

Para llegar con el número de ISBN-13 para las entradas existentes en la base de datos, se empieza con 978, a continuación, utiliza los primeros 9 dígitos del antiguo número ISBN. El dígito decimotercero es un cálculo matemático (una dígito de control) Obtenido de la siguiente manera:

  1. Añadir todos los dígitos y pico colocado (el primero, el tercero, el quinto, y así sucesivamente).

  2. Multiplicar todos los dígitos, incluso colocados por 3 y agregarlos.

  3. Agregue el total de Paso # 2 al total de Paso # 1.

  4. Averigüe lo que necesita agregar para redondear el número hasta el 10. cercana Este valor se convierte en la decimotercera dígitos.

Por ejemplo, considere el ISBN de 10 dígitos 0743477103. Se convierte primero 978074347710, y luego los pasos funciona 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. Así, el ISBN-13 se convierte 9780743477109.

La base de datos a partir asemeja:

0743477103: Macbeth: Shakespeare, William1578518520: Solución del innovador: Christensen, Clayton M.0321349946: (SCTS) Symantec Especialista Certificado Técnico: Alston, Nik1587052415: Cisco Network Admission Control, Volumen I: Helfrich, Denise

Y desea que la base de datos resultante para cambiar lo que cada línea se parece a algo como esto:

0743477103: Macbeth: Shakespeare, William: 9780743477109

El ejemplo que sigue logra este objetivo. No es la cosa más bonita jamás escrita, pero camina a través del proceso de hacer frente a este problema, lo que ilustra el uso de awk y sed.




» » » » Linux: trabajar con awk y sed